モブプロって楽しい!
こんにちは。 4/13に Ajile Japan 2017*1 で、モブプロ体験してきましたので、そこで学んだことを記事にまとめたいと思います。
モブプログラミングとは
モブ=群衆 つまり、複数人で、
- 同じ時間
- 同じ場所で
- 同じPCを使って
- 同じ課題に取り組む
開発手法だそうです。
1人がコードを記述するドライバーの役割を持ち、その他の人はドライバーにアドバイスを送るナビゲーターの役割を持ちます。 ドライバーは何分かおきにナビゲーターとバトンタッチして、全員にドライバーを体験させます。
当日やったこと
elmでローマ字の足し算
1回目のモブプロは、elmという言語で、ローマ字の足し算をTDDで開発しました。 なんと、アジャイルジャパンの基調講演を行った Joshua Kerievsky もドタ参!!これは胸熱。
そのJoshuaの提案で、誰も触ったことがないelmで開発を行うことになりました。 ファシリテーター1人、ナビゲーターは飛び入りで人が入ったり抜けたりしていましたがだいたい6~8人いました。 10分でドライバーを交代し、休憩を挟みつつ合計1時間半モブプロを行います。
さて、これからモブプロ開始するかー・・となった時に、Joshuaから「Mobsterいいよ!(翻訳)」という声があがりました。 モブプロで時間管理を行うツールのようです。インストールして使ってみました。
モブプロの過程で、elmはjavascriptを生成する中間言語っぽいということがかろうじて分かりました。 関数型言語っぽいことも分かりました。 みんなの知識を足し合わせて、なんとかテスト、実装..を繰り返しながらいくつかのローマ字の足し算を実装することができました。
終わった後の感想
- みんなが触ったことのない言語でもコードかけたのすごい!
- Mobsterなかなか良い!
- 普段触り慣れていないキーボードはストレス!
- ナビゲーターからのアドバイスがないと、ドライバーが自分で考えてコードを打たなくてはならなくなり、それだと公開コーディングになり辛い。
- ナビゲーターから見ると、ドライバーが勝手に書き始めるとドライバーが何をしようとしているのかわからなくて辛い。
- 10分のドライバーは少し長く感じた。
rubyで自動販売機
2回目のモブプロは、rubyという言語で、自動販売機を(もちろんTDDで)開発しました。 ファシリテーター1人、ナビゲーター数名、 あとサプライチェーンマネジメントで有名な原田騎郎さんにプロジェクトオーナーとして入ってもらいました。 今回は7分でドライバーを交代して、45分間モブプロを行いました。
さーて、rubyだしGemfile作ってbundle install
するかー・・となった時に、
bundle exec rpsec
コマンドが効かないアクシデントが発生しました。
急遽別のPCでモブプロを行うことになりました。
そのPCの持ち主がvi使いで、カスタマイズされていて、みんな苦戦を強いられていましたw
PCが入れ替わったことで、Mobster入れ直す?という話になったのですが、今回は人でタイムキープすることにしてみました。
まずは簡単にフローチャートを描いて、今からどこを作る、というのをみんなで共有できるようにしました。
1回目の反省を活かし、ドライバーは今から行うことを声で宣言しながら実装を進めました。
POから、ちょいちょいチャチャが入りつつ、もうみんなの集中力が限界に達したところで、モブプロ終了としました。
終わった後の感想
- 皆でワイワイできた。楽しい!
- 動いた時に拍手を行うと、テンポを感じられて良い!
- 普段触り慣れていないキーボードはストレス!(2回目)
- 環境で戸惑ってしまうから、チームで環境を揃えておくと良いのかも。
- エディタを人で切り替えるのもあり。
- でも一方で、知らない環境に触れることで知識が広がる。
- 2回目はMobsterを使わないで、特定の人がタイムキープしてくれていたけど、ストップウォッチを押し忘れてしまうことがあったり、負荷があるなーと感じたのでMobsterいい。
- ドライバー、7分だと短く感じた。
まとめ
ここ最近で一番、「プログラミングって楽しい!」と思えた時間でした。 私的に重要だと感じたポイントは、時間です。 一番ちょうどいいのは、1回あたり45分、1人あたり7~10分で回すことらしいです。それでやってみましたが、確かにちょうどいい感じでした。 前に会社で3人くらいでモブプロを行ったことがあったんですけど、 その時はモブプロに感動しなくて「知識を共有できるのはいいね〜」という感想くらいしかありませんでした。 1人30分を持ち時間として、1時間半くらいの時間で行っていたので、開発のテンポも乗らないし、集中力も切れていたのが原因なのかもしれないですね。 今回モブプロを体験してみて、過去のモブプロとの比較も出来たのでよかったです。 これはリベンジせねば。
*1:日本の権威あるアジャイルのイベント。www.agilejapan.org