東京支店社内勉強会 モブプログラミングやってみた編

投稿日:

4/21土曜日、この日はとてもよい天気に恵まれ、4月だというのに予想
最高気温が夏日というところもチラホラ・・・
しかし我々は知らなかった。それ以上に熱い場所へ足を踏み入れることに
なることに・・・

・ ・ ・

さてASEでは、現在月イチペースで社内勉強会をやっています。
(以前のエントリにあった情報処理技術者試験対策勉強会とは別です)

どんな内容でやっているかというと・・・
「発表者が好きなようにやれ!」が今のところのスタイルなので、
テーマも、形式も、色とりどり。

テーマで言えば
・Java
・JavaScript(ES6)
・Docker
・GIMP
・webフォント
・VLAN
 ・・・etc

形式で言えば
・ふつうの発表形式
・短時間なLT
・参加者が手を動かすハンズオン
・事前に問題出して各自でコードを持ち寄るどう書く大会

今回4/21のメインテーマは
 「みんなでモブプログラミングやってみよう」でした。

モブプログラミングというのは、複数人でひとつのプログラムを作るもので、
コードを実際に書くdriver1名と、driverに指示を出す複数名のnavigatorに
分かれ、navigatorの指示にしたがってdriverがプログラムを書いていくと
いうもの。
driverはおよそ10分〜30分くらいの間隔で交代していくのが一般的らしいです。
# 詳しくはgoogle先生に聞いておくれ。

お題は、「mbox形式のメールボックスファイルからメールを1つずつ
切り出して.emlで保存するコンソールプログラムをpythonで作る」

細かく言えばもう少し条件があったんですが、概ね上の内容だけを
道標にスタート。予定の制限時間は2時間半くらい。

MOBPR01
スタートしてみたものの、いきなり複数人の意見をまとめながらコードを
書くというのは困難であることがわかりました。

 「その処理はメソッド切った方がいいんじゃない?」

 「その処理はそのメソッドじゃないよ」「えっ」
  「いや入れたほうが」ワーワーガーガー「・・・(どっちやねん)」

 「結局このメソッドって何したかったんだっけ?」
  「書いたのはアナタでしょ!w」

熱い意見交換が行われ、気がつくと、飛ぶわ飛ぶわ言葉のナイフ・・・
(本来モブプロで批判などはNG、最後のはアウトなんだけどね・・・)
周りの声に圧倒されpythonほとんど知らない2年目クン全然コードかけない
とかもありました。

そんなひどい状況で進んでいる(いない?)中、一人のスゴウデdriverが
道を示してくれました。
コメントを使って、メソッドの役割を明記したのです。
これにより、navigatorの意見はひとつの方向を向かうことになり、
徐々に形を整えていき、予定時間ぎりぎりで最低限の要件を満たせました。

みんなで作ったコードがエラーを出さずに動いた時、自然と沸き起こる拍手!

MOBPR04
プログラムが動いた!という初心の頃の感動を思い出させてくれました。

以下、参加者の感想まとめです。

モブプロをやってみて体感したメリット
・技術の底上げ
 筆者はpython初見でしたが、それなりに書くことができました。参加者の
 技術底上げには向いていそう。でもわからない人だけでやると一歩も
 進まない。できる人のレベルにできない人が引き上げられるイメージ。
・情報共有
 モブプロで作り上げたものの仕様は間違いなく共有されます。核となる
 重要な部分をモブプロでやって仕様の共有を図るのはアリだと思いました。
・チームワーク向上
 最初はナイフ投げ合ってたけど最終的にはチームワークは上がると
 感じました。
・熱い
 みんなの熱量が自然と上がります。
・楽しい
 こんなに楽しいコーディングは他にない!

デメリット
・人数多すぎると意見まとまらない
・人数多すぎると工数に見合う成果が出るかは難しいかも知れない
 →人数は4、5人が良さそうという意見が多かったです。今回は9人でした。
・メンタル弱いと死ぬ

モブプロを成功させるポイント
・いきなりコードを書かずに方針を話し合うことが必要
・コードを書いている時でも方向を整える人が必要
・数ある課題の中からどれを対応するのか、driver自身が最初に
 意思表示するとnavigatorは指示しやすい

色々書きましたが気になったら試してみると面白いと思います!
体感に勝るものなし!