TDDワイワイ会その32参加レポート

はじめに

3/1にTDD+モブプログラミングでワイワイする会 その32に参加してきた。 スクラムマスターとして案件に参画することが多いが、XPの開発プラクティスの実践経験に乏しく困ることがあったので、手を動かして実感を掴みたいと思ったのが参加の動機。 この記事では「イベントの流れ」、「モブプロについての学び」、「TDDについての学び」の3項目で、イベントをふりかえる。

イベントの流れ

  • 最初にイベント全体の説明があった。
    f:id:sonomirai:20200303205349j:plain
    当日の様子(@miholovesqのTwitterから拝借)
  • この日の参加者は12名だったので、4人チームを3つ作った。得意な言語でチーム分けするのかと思っていたが、そういうわけではなかった。
  • チームごとに別れてから改めて自己紹介をして、今回使う言語と誰のノートPCを使うかを決めた。
  • 次に使用する言語の選択。メンバの得意な言語はRubyJavaだったが、みんなが知らない言語の方がモブプロ の力を体感できるということで、使用する言語にはあえてPythonを選んだ。(テストフレームワークはpytest)
  • 最後にコーディングの題材をcyber-dojoから選んだ。
    • 前半戦はFizzBuzzをやった。実際に私のチームがやった軌跡はここから見れる。(いつまで見れるのだろう。ずっと見れるのかな?)
    • 後半戦はHally Potterという題材をやった。Hally Potterはあまり関係なくて、シリーズ物の書籍を複数冊購入した際の最適な割引率を算出する問題。チームの軌跡はここ。難しかった。とりあえず実装は始めたものの途中で行き詰まって、ホワイトボードで実装イメージについてディスカッションして、コーディングを再開したあたりでタイムアップになってしまった。
  • 最後にイベント全体をふりかえって、片付けをして、イベントは終了となった。

モブプロ についての学び

  • 楽しい
    • スキル面で不安があって、実際足を引っ張ってしまう場面もあったが、モブプロだとフォローしてもらいつつ進めることができるので、いたたまれない想いはしなかった。それよりも「楽しい」の気持ちの方がずっと大きい。
    • TDDワイワイ会は「テストが落ちると思って落ちた時」「テストが通ると思って通った時」はワーと拍手をすることになっていて、これも大いに場作りに貢献していた。
    • 逆に「テストが通ると思って落ちた時」はみんないっせいにガタッ!となってエラー原因の特定に努めた。この一体感。これはこれで楽しかった。
  • ドライバーはYouTuberのように声を出しながら手を動かすのが大事
  • 可能なら椅子は人数分+1つ用意するとよい
    • 人数分だと毎回ほかのメンバとの入れ替わりが発生してしまうため)
  • 可能ならノートPCは人数分+1つ用意するとよい
    • 他の人のPC触るのはけっこう心理的なハードルが高いことに気づいた。あと時間が経つとロックがかかってしまう。。。いちいち解除してもらうのもリズムを崩してしまう。
  • リモートでモブプロするときはVS CodeのLiveShare機能がけっこういい感じというのをメンバに教えていただいたので、今度使ってみたい
  • TDDワイワイ会のページにも貼ってあるMob Programming Startup Manualがモブプロの資料としてとても参考になった。

TDDについての学び

  • 事前にt_wadaさんのFizzBuzzを題材にしたTDDのライブコーディングの動画を見て「歩幅の調節」を知識として知ってはいたが、実感がなかったので、そこを体感できたのはとても良かった。今回は初対面のメンバでモブプロしたので丁寧にやったが、業務にTDDを取り入れて慣れてしまえば、基本は明白な実装を前提として実装を進めて良いのかなと思った。

  • すぐに実装イメージが合わないような難しい題材を扱う際、ホワイトボードを使った設計とTDDでの設計を、どうバランス取りながら進めるかというのは、難しい問題だと感じた。ここは経験を積んでバランス感覚を養うしかない気はするので、またTDDワイワイ会に参加して、"筋トレ"させてほしいと思った。

さいごに

イベント運営が大変な社会の状況の中、対策を講じた上でイベントを開催してくださった運営の皆様に感謝します。またぜひ参加したいと思います。