いきさつ
最近月1くらいで社員教育として会社でJavaの勉強会を開催しているが、どのようにすれば効果的にできるのかを模索中だった。
そんな時に偶然にもモブプログラミングに出会った。
それはRegional Scrum Gathering Tokyo 2017のキーノートでRachel Daviesによって紹介されて初めて知った。
複数人が同じ場所で、同じ時間に、同じPCでプログラミングを行うというもの。
ペアプログラミングはやったことないけど、それを発展させた感じである。
実際に仕事でモブプロ体験してみたところいろいろな学びがあったので、これこそ教育にピッタリな手段なのではないかと思い勉強会に取り入れてみることにした。
環境
- 人数: 6人
- 私は現場でモブプログラミング経験者、後輩5人は未経験
- 普段は各々別の現場でプロジェクトに参画しており、使っている言語や役割もバラバラ
- 普段現場でプログラミングしてない人もいる
- 場所: 本社会議室
- 時間: 9:30~12:30の3h
- 使用機器: ノートPC(Windows 10), 23インチディスプレイ
- 開発環境: Cloud9というクラウド開発環境(maven, git, Java8をインストール)
進め方
ブログジムには乗りたいの記事を参考にした。
- ドライバーを中心に、ナビゲーターが囲む形で座る。
- 初めに、これから作るアプリケーションの仕様をみんなで確認して認識をあわせる。
- ホワイトボードも使ってお絵描きしながら認識をあわせる。
- タスクを付箋に書き出す。
- タスクの付箋はドライバーの前に配置。
- 6人で実施したので、1人10分くらいまたはキリのいいところで交代。
- ドライバー
- やることを宣言してコーディング
- ナビゲーター
- ああやりましょう、こうやりましょうとドライバーに指示出し
- エラーが出たら一緒に原因を考える
開発するもの
DBにアクセスし、select, insert, update, deleteを行って結果表示するだけの簡単なJavaアプリケーション
やってみてどうだったか(社員教育の観点で)
※あくまで個人の主観です。
良かったこと
- 実際に自分もコーディングを見せるので、様々な面で後輩に伝えやすかった。
- タスクの出し方、Gitコマンド、クラス設計、Javaの機能、自分が書いたコードの解説など
- モブプロ後の感想で以下のようなポジティブな意見をもらうことができたのは良かった。
- 細かくタスク出しできたので流れを理解しやすかった
- 忘れていたことを思い出せた
- ソースの書き方や考え方がわかった
- 他の人が遭遇したミスを同時に経験できたのがよかった
- 色々な意見が聞けた。
- コーディングの途中で誤りに気づけた
- とても身になる体験だった
- 等々
- スキルレベルがバラバラだからこそ、一緒に開発することで得られるものも大きいのではないかと思った。
もやっとしたこと
- Cloud9がイマイチだった。
- Java向けではないらしく入力補助が貧弱。
- サクサク開発できないのがネック
- しかし、それが逆にJavaプログラミングの基礎的なコーディング力はつくから良いかもという前向きな意見はあった。
- モブプロ環境の整備に手間取った(これはうちの会社の問題)
- 交代のサイクルは早くしてみたものの、6人という人数は多かったかも
- ちょっと物足りない感がある
- 6人で3hという時間が短すぎるのかもしれない
- 今回勉強会に集まってくれた社員は前向きに取り組んでくれる人達だったので良かったが、前向きじゃない人がいたらどうなるかが不安
まとめ
感触としてはすごく良い。
山本五十六氏の「やってみせ・・・」の名言をまさに実現できる。
しかし、モブプログラミングを取り入れない場合に比べてどの程度の効果があるのか予想がつかない。
何かしらのメトリクスを計測してみたいところではある。
やってみてダメだったらやめればいいだけではあるが、ダメかどうかの判断基準も持ち合わせてない。
なのでしばらくは続けるつもり。