TDD+モブプログラミングでワイワイする会その16に参加してきました

公開日: @t_yama5k

TDD+モブプログラミングでワイワイする会 その 16 - connpass

Agile Japan 2018 の基調講演(沖繩サテライトに参加していました)を聴いてモブプログラミングに興味を持ったので、参加した時のメモ。

外では琉大祭でガヤガヤの中、こちらのイベントには 14 人も集まってワイワイしてました。 ちなみに近くでポケモン GO 研究会?の出し物をやっていました。

(↓ 当日のスライドではないが、内容はほぼ同じようだったのでなので引用)

このサイクルでドライバーを交代するルール
テンポよく交代できるし、TDD のお作法に乗っ取って**"筋トレ"**してほしいとのこと。

モブプログラミング 1 回目

  • 言語は Ruby/RSPec お題は FizzBuzz
  • いきなり実装ではなく FizzBuzz に必要なことをTODO リストにまとめる(これがテストケースの元となる)
  • だいたい以下の流れでドライバーを交代して、ワイワイとモブプログラミングを行った
    • ①Red→Green:テストが通った!と皆で拍手して称え合う
    • ②Green→ リファクタリング:ナビゲーター同士で相談。テストを通るためだけに書かれたコードからイケてる感じになるようにコードをリファクタリング
    • ③ テスト追加 →Red:皆で(大げさに)がっかりする。急いで Green にしなきゃとドライバー交代。① に戻る
  • 実装はだいたいわかっているだけに、なかなかテストケースを書けなかったのがもどかしかった
  • テストのコメント部分についてはどんなことを書けばいいのかナビゲーター役の時に色々検索した
  • 参考:【Ruby on Rails】RSpec の describe/context/it の意味を理解した件

1 回目終了後はコードレビューしたり、RSpec のテストコメントには何を書くべきかというプチ講座が開催されていました。

モブプログラミング 2 回目

  • 人生初の Haskell お題は FizzBuzzPlus(31 など 3 が含まれている場合にも Fizz になる)
  • Haskel が使える方がいたので、途中から Haskell 講座が始まり、関数型プログラミングがちょっとわかった(ような気がした)

2 回目も、知っているお題 x 知らない言語 だといい感じに盛り上がりました。

わかったこと

  • モブプログラミング面白い
    • ドライバーは「有機キーボード」
    • ナビゲーターは「司令塔」。意見を出し合ったり、手が空いてる人が先回りして文法を調べたりしながらコードをより良いものにしていく
  • テスト駆動 は テスト手法 じゃない 開発手法 だ!
    • 分析技法であり、設計技法であり、実際には開発のすべてのアクティビティを構造化する技法
  • ボブおじさん(Robert C Martin)ってすげー!
  • TDD でテストを書く筋トレしよう
    • まずはテストファースト書きで習慣を身につける
    • 業務に取り入れる場合はまずは、コード実装後で良いのでテスト書くようにする
      • テストの無いコードはレガシーコード

次にやること

  • 『テスト駆動開発』(新訳)を読む
    • スライドにも登場しており、お勧めされていた
    • 「付録 C」には TDD をとりまくここ 20 年の動きについてよくまとまっている(らしい)

でもまずは IPA の試験が控えてるので、そっちを頑張る。