# モブプログラミング
〜認識や知識を共有しながらプログラミング〜
# モブプログラミングとは
モブプログラミングは、開発チーム全体が集まって開発を行う開発手法です。
三人以上で同じ画面を見ながらプログラミングをして、
議論をしながら開発を進めていきます。
# なぜモブプログラミングをするのか
ほぼペアプログラミングの理由と同じですが、
特出するメリットをあげるとすると下記になります。
- 教育効率
- 三人集まれば文殊の知恵
# 教育効率
ペアプログラミングは二人で行う開発ですが、
モブプログラミングは三人以上で行うものなので
より効率的に知識を共有することが可能です。
# 三人集まれば文殊の知恵
一人での開発はもちろん、
ペアプログラミングであっても二人でわからない問題も、
三人集まれば解決するかもしれません。
難易度の高いプログラムの場合は、
ペアからモブへ、柔軟に変更してみるとよいでしょう。
# どうやっておこなうのか
参加者全員が見れるような大きさのディスプレイと一つの開発機を用意します。
一人がキーボードを使いプログラミングをし、(ドライバー)
他の人は開発のアドバイスや質問などを行います。(ナビゲーター)
# 注意点
# 開発スピードは落ちる
開発スピードはペアプログラミングの時よりも当然ながら落ちてしまいます。
チーム内で学習や認識共有が必要な時に行うのが良いでしょう。
開発はペアプログラミング、学習はモブプログラミングです。
# ローテーションしよう
同じ人が常にキーボードを触っているのではなく、
少なくとも参加者全員が一回はキーボードを触るようにしましょう。
# スピードに注意しよう
早すぎるのも遅すぎるのも注意が必要です。
例えば、初心者に合わせて、ものすごく遅い進捗になってしまうと
他の参加者は学びがありませんし、
開発進捗も悪化するでしょう。
また、一人が詳しすぎて、その人がすべて開発しているような状況は
スピードは早いですが、他の人の理解が追いついていないリスクがあるので注意が必要です。
# 集団思考に陥らないようにする
集団思考というのは、集団で何かを決める際に
不合理であったり、危険な意思決定が容認されてしまう現象のことです。
そんなこと起きないだろうと思われるかもしれませんが、
私の個人的な経験から言っても
同質性の高い集団だと非常に起きやすい現象だと思います。
集団の統一見解と異なる意見に対して
理解もなく頭から否定するようになったら危険な兆候です。
# 攻撃しない
特定分野の技術力の高い人にありがちなことですが、
他の参加者を攻撃しないように、もしくは、
攻撃と受け取られないように気をつけましょう。
本人はただ指摘しただけだと思っていても
受け取り側はそう思っていない場合もあります。
関係性がある程度できていれば、
問題ない場合もありますが、十分注意しましょう。
# 参考資料
# さいごに
文章の改善のため、アンケートへのご協力をお願いいたします。