モブプログラミングって?チーム全員(プロダクトオーナー含む)が集まって、1人だけがコードを書いて、それがスクリーンに映しだされてて、その他の人みんなでやいやい言いながらものを作っていく。ルールは「ドライバー(コードを書いてる人)は、ナビゲーター(周りでやいやい言ってる人)に言われた通りにコードを書く。ドライバーが自分で考えてコードを書くのはダメ。やってみた7人ぐらいのチームで、プロダクトオーナーからのお題に対してTDDで実装をやってみた。IDEAでローマ数字の計算を。Kotlin全く知らないし、IntelliJも全然慣れてない。第2部はJavaで自動販売機を。こっちもIntelliJだったな。1人7分で交代して次の人。だいたい1時間で一周して終了。できたものほとんどの人がKotlin知らないのに、なんか動くものが作れた。Javaの方も、動くものが作れたな。言っても、どちらも、とりあえず要件を満たして動くってだけで、うんこーど。素振りだから楽しもうと思って!おこったこと今回はTDDの勉強会じゃないからそっちは置いといて。モブプログラミングで何が起こったか。考えると、こんな感じかな:お互いのことが分かったコードのスタイルや、考え方、アドバイスのやり方、何を大事にしているか、どういう部分が苦手か、など。ペアプロと違うのは、それが僕じゃない別の誰かとの会話によってもたらされているということかな。僕だったら引き出せていないようなものを、別の人同士の会話の中から気づくことができた。そのコードになっているかを全員が知っている今回は特にうんこーどを書いたんだけど、どういう経緯でそうなったのかが共通認識として持てている。それなしにコードだけ見たら「はっ?」ってなるようなものも、「あー。あのときこういう経緯で進めたからねぇ。そのコードに対してどう思っているかを全員が知っている書きながら「この辺はリファクタリングしたいね」とか「ここでもういっこジュースの種類が増えたらどうする?」「今はいいんじゃない?」とかそういう会話が出てくるので、全員がそのようなポイントについての共通認識を持てている。技術的なことのキャッチアップができるKotlinのこと全く知らなかったので、僕がドライバーのときに「メソッドって何で始めるの?え?fun?」とか言いながら書いてて、そしたらナビゲーターで知ってる人が「そうそうそこでコロンだね」とか言いながら教えてくれて。Kotlin触ったことない別の人もそれを聞きながら「へー」とか言って、その人の番ではすらすら書いてた。わかったことドライバールールで意図が伝わるドライバーは自分で考えたらダメなので、全ての考えがナビゲーターからドライバーに会話で伝えられる。ドライバーやるので置いてかれない全員が交代でドライバーをするので、少なくとも自分の番のときに参加しなきゃいけない。ナビゲーターとしてもしっかり理解しておこうと思うし、理解できてないことを自分の番で聞くことができる。ペアプロよりも余裕がある何人もいるので、ペアプロよりも余裕がある。他のナビゲーターにまかせて、自分は気になることを調べておくとかもできる。いうときに使う?以上をふまえて、どういうときに有効だろう?と考えてみる。うまくまとまんないや。全員で認識を合わせたいときは良さげ。ペアだけじゃなくてチーム全体として、結果としての情報じゃなくて、過程の情報を共有することができるから。全員の知恵を持ち寄りたいときも良さげ。それぞれ得意分野が違ってて、それを合わせて一つのものを作りたいなってとき。リーダーが自分の考えや方針をチーム全員に伝えたいときとかにも良さげ。そのリーダー1人が書きながら説明するよりも、モブプロ形式の方が全員手を動かしながら覚えられるし。あと、そのリーダーがドライバーのときには、他のメンバーが指示出さなきゃいけないからねw不確定要素が多い段階でのモブプロも良さそうかな。POに「この場合はどうなるの?」「こっちはどうなるのが正解?」とか聞きながら進めて、それに対して「汎用的にするのは一旦待って、今は目の前の要件だけを考えるようにしようか」ってPOも含めてチームでそのやり取りの共通認識が持てるし。細かくものを詰めていくというよりはどこが課題か、何を考えないといけないか、どんな技術的な難しさがあるか、とかを全員で共通の認識を持つ、という感じに使うのが良いのかなと思った。その後はタスクの洗い出しをして、それぞれまたペアで作業をしていくような感じ。設計を全力で捨ててアドホックなコードを書き続ける、というレアな体験をした......あれはなんだったんだろう。今回は特にそっちに振り切ってやったんだけど、そうやって一旦どういう実装ができるかをばーって出して、それに対して「在庫どう持とうか?」「ジュースはEnumじゃきついね。」とか一通りの経験と議論を共有したうえで、「よし!今日作ったものは全部捨てて、明日のモブプロでちゃんと実装していこうぜー!」みたいにできそうかなーって思ったりした。贅沢だったなー!今日は、こざけさん直伝てKotlinデビューして、いろふさんやはるじっくさんとTDDでモブプロするっていう贅沢な勉強会でした。2017年5月29日ぷーさにさん、と、よーはつさんの二人がリードしてくれてるのも贅沢。