(なんちゃって)モブ・プログラミング(もどき)を何回か実践しての気づき

このブログをご覧のみなさん、こんにちは。

モブ・プログラミングとは?

(なんちゃって)モブ・プログラミング(もどき)でスキル伝授をしてみた参照

環境

以下を2回

  • 人数:3名(学生2名AとB、自分)
    • 学生1名は自分の知り合い、もう1名は初対面
    • 自分の知り合いの学生は以前一緒にペアプロをしており、ある程度プログラミング能力はある
    • もう1名はプログラミングが苦手で、書籍などを“読んで”学んでいる
  • 場所:Starbucks
  • 機器:MacBook Air1台、大型ディスプレイなし、ホワイトボードなし

以下を4回

  • 人数:5名(学生4名AとBとCとD、自分)
    • 学生2名は自分の知り合い、もう2名は初対面
    • 知り合いの学生は以前一緒にペアプロ、モブプロをしている
    • 初対面の2名は片方はプログラミングが苦手、もう片方はプログラミングが得意
  • 場所:Starbucks
  • 機器:MacBook Air1台、大型ディスプレイなし、ホワイトボードなし

以上、合計6回

やり方

(なんちゃって)モブ・プログラミング(もどき)でスキル伝授をしてみた参照

実践した結果の気づき

  • ペアプロと異なり、人数が奇数でも実施できる
  • 情報共有がし易く、学びを多い
    • 以前ペアプロをした時よりも短時間で学生のレベルが向上した(ように見えた)
  • 一人で作業するのに比べて疲労度が高い
    • 特にペアプロもしたことない人は疲労度が高かったので、適切なタイミングで休憩を挟むのが良いと感じた
  • 時間当たりの成果物の品質がよい
    • 別途コードレビューやPull Requestでレビューする場合、「いまからそこ修正するの!?」みたいなことが起こるので、そう考えると全員で作り、CIさえ通ればマージして良いというのは時間当たりの成果物の品質は良いなと感じた
  • メンバー間の関係性によって、問題が浮き彫りになる ← New!!

メンバー間の関係性によって、問題が浮き彫りになる

5人ではじめてモブ・プログラミングをした際にそれは起こった。

  • 学生のDさんがDriverとして書いたコードが一見正しいが、考慮漏れによるバグがあるものだった
    • FizzBuzzで例えると、15の時にFizz, Buzz, FizzBuzzと3つ出してしまうような間違い
  • そこでNavigatorの自分が「そのコードだとこれこれこういう場合にエラーになると思うんだけど、意図を教えてもらえる?」と確認したが、「うっさいな、黙ってろよ」というなかなかなお返事
  • ここでうまい返しができず、Dさんはコードを書き切り、次のDriverにバトンタッチする時間に
  • が、誰もバトンタッチしない
    • 後でご飯を食べている際に確認したところ、Dさん以外の全員がDさんの書いたコードに問題があると認識していたものの、ピリピリした雰囲気に指摘できなかったとのこと
  • この火中の栗を拾うのは自分だけか…と諦めながらDriverに
  • Dさんの書いたコードだとコケるテストコードを書く
  • 「テストコードコケるのでプロダクトコード直しますね」と言ってから直そうとしたら背後から肩を捕まれ「そういう感じ悪いのやめろや」というなかなかなコメント
  • ここでもう相手するのが面倒になり、やらなくていい言い訳を考え始める
    • そもそもこれ彼らの宿題で自分にとってはバグあってもいいわけだし、別にバグってても自分困らないしなどなど
  • と言い訳を考えていたら、学生CさんにからDさんに「相手に失礼なそういう態度やめなよ」とコメントを契機に周囲からフォロー
  • 学生3人によるフォローでDさんのイライラはおさまったものの、実装については手付かず
  • で、結局そのバグの修正だれがやったと思う?
  • 自分です

結局、(なんちゃって)モブ・プログラミング(もどき)の後にご飯をみんなで食べて、なんでそんなに突っかかってきたのか判明。
上で4回実施と書いている通り、わだかまりはなくなり、(なんちゃって)モブ・プログラミング(もどき)を続けている関係

※これはモブ・プログラミングに限った話ではなく、チームでワークする際、すべてに当てはまると思われる