SpecteeでTDDとモブプロを体験する会を開きました!
こんにちは、エンジニアチームの往蔵です。
今回はエンジニアチームで行った「TDDとモブプロをやってみる会」という取り組みについてお話しさせていただきます。
※ TDDはテスト駆動開発、モブプロはモブプログラミングの略称ですが、以下省略いたします。
TDDとモブプロをやってみる会(以下TDD会)とは?
TDD会とは、3~5人くらいのチームに分かれ、モブプログラミングでTDDのループを回す会です。 TDDの基本サイクルである、「Green -> リファクタリング -> RED」を一つのループとしてモブプロの「ナビゲーター」と「ドライバー」を交代します。
モブプロやTDDについては、以下の資料で詳しく説明しておりますので、詳しい説明は割愛いたします。
モブプログラミングスタートアップマニュアル
テスト駆動開発(TDD)とは?目的やメリット・デメリット、やり方を解説
※ 今回の「TDDとモブプロをやってみる会」を行うにあたり、TDDワイワイ会®様が実施している、「TDD+モブプログラミングでワイワイする会」を参考にさせていただいております。ありがとうございます!
TDD会の目的
私には「常日頃から開発に携わっているが、日々の業務以外のスキルをキャッチアップする時間がない」という課題意識がありました。
私たちエンジニアはプログラムを書く仕事をしているのに、プログラミングを練習することは多くありません。また、業務以外でプログラムを書くという人はあまり多くはないと思います。このような勉強会を通じて練習できることはスキルをキャッチアップする上で有効な手段です。
また、他の人のプログラムの書き方を参考にさせていただくことは、とても勉強になると思います。 より良いプログラムの書き方や便利な手法など、今まで疑問にも思わなかったようなことは、モブプロなどで他の人と作業する中で知ることが多いです。
勉強会で他のチームの人と集まり、普段一緒に仕事をしない人とプログラミングを行うことで、 社内全体の技術的なレベルアップにつながると考えました 。
そのような考えのもと、チームを横断した複数人でプログラミングを練習するという目的 を達成するために「TDDとモブプロをやってみる会」を社内で開催しました!
TDD会の準備について
TDD会を行うに際して、以下のことについての準備を行いました。
協力者探しと参加者の募集
何かイベントを行うときに、自分以外に頼れる方が一人でもいてくれると、気持ちの面でとても助かります。そこで、私と同じチームのエンジニアに運営を手伝ってくれないかお願いしたところ、ありがたいことに快諾してくださいました。
その後、Slackでエンジニア組織全体に対して周知し、参加者を募集しました。
実行環境の準備
使用する環境は、ブラウザ上で手軽にさまざまな言語でTDDを行うことができるCyberDojoを使わせていただきました。
説明スライドの作成
会の最初に参加者の方々に説明するため、TDDのルールや今回のTDD会で意識してほしいことを記載したスライドを作成しました。
TDDワイワイ会の様子
今回のTDD会では、FizzBuzzという課題をTDD+モブプロで行いました。
FizzBuzzとは、1~100の数字を入力し、3で割り切れる場合には"Fizz"を、5で割り切れるときには"Buzz"を、3でも5でも割り切れる時には"FizzBuzz"を出力するというプログラミングの課題です。 今回は、このFizzBuzzについて、3人のチーム2つに分かれて課題に取り組みました。
チーム1の様子
私はこちらのチームに入りました。
チームメンバーが一番多く触れていた言語であったpythonを用いて課題に取り組みました。単体テストを書いた経験がないメンバーもいる中で、一つずつテストを書き、実装を進めていくことを体験していただくことができました!
チーム2の様子
チーム2では、最初はRustを用いて書き始めていました。慣れていない言語で苦戦していましたが、普段業務では触れない言語に触れてみるというのも、プログラミングの練習ならではだと思います。
TDDワイワイ会をやることで得られた効果
TDDワイワイ会を社内で開催することにより、TDDの手法や単体テストの書き方をみんなで学ぶことができました。
参加したメンバーの中には、今まで単体テストを書いたことがなかった方や、TDDをやったことがない方がいらっしゃいましたが、そのようなメンバーからは「テストがないまま開発するのは怖いと思うようになった」や「TDDは達成感が得られる!」といった感想をいただきました! 主催した私としても、TDDを説明することでよりTDDについて理解が深まりました。
また、技術的なキャッチアップ以外の点でも、今まで読書会以外ではほとんど取り組んでいなかった「チーム横断で技術的なスキルアップをすること」に関して、新しい取り組みの形を見つけることができました。
今後も定期的に開催することで、スキルアップできる場を増やしたいです!
おわりに
今回は「TDDとモブプロをやってみる会」を実施し、その準備や得られたことをお話いたしました。
今後もこのような取り組みを定期的に行い、チーム横断で技術の話ができる場を作り、今後もSpecteeの技術力の向上のために盛り上げていきたいと思っております。
最後に、noteの更新情報やスペクティの最新情報は公式Xにて発信しています。ぜひフォローをお願いします!次回もお楽しみに!