#プログラミング勉強日記
2020年11月30日
最近モブプロやペアプロといった言葉をよく耳にするが、モブプロとペアプロの違いがいまいちわかっていなかったので、まとめる。
#モブプログラミングとは
モブプログラミング(通称:モブプロ)は3人以上のエンジニアで1つのプログラムを書くことをいう。
モブ(mob:群衆)が集まって行うモブプロは、3人以上のエンジニアが協力して1つのプログラムを完成させるが、全員がプログラムを書くというわけではない。1人1人に役割があって、それぞれの人がその役割を全うする。実際にコードを書くドライバー(タイピスト)と、コードを見ながら意見をするナビゲーターという2つの役割に分かれる。ドライバーとナビゲーターの役割は数十分といった一定時間で交代することがいいとされている。
ドライバーの役割:プログラウのコードを書く人。ナビゲーターの指示に従ってコードを書くが、改善の提案を行う。ドライバーは常に1人である。
ナビゲーターの役割:基本的にはナビゲーター同士で議論をしながらドライバーに対してどういったコードにするのか具体的に指示を出す人。ナビゲーターは複数人である。
##モブプロのメリット
- 1人で考え込まずにチームで意見を出し合うことで効率よく作業できる
- モブプロで作成したコードはレビュー済みなのでコードの質が向上する
- 1人1人が持つ知識を他の人に共有できる
- チーム全員がコードについて共通認識を持てる
- エンジニア同士のコミュニケーションの促進
##モブプロのデメリット
- 大勢でプログラミングするので発言する回数が減る
- チームの人に依存してしまう可能性がある
- 複数人のナビゲーターで1人のドライバーを攻撃する形になってしまう
#ペアプログラミングとは
ペアプログラミング(通称:ペアプロ)は2人で1つのプログラムを書く。
モブプロと同様に、ドライバーとナビゲーターに分かれて作業する。ドライバーとナビゲーターの役割を30分ごとまたはテストを1つ完成といった一定時間で交代することが良いとされている。また、一定期間で2人ペア自体を組み替えるという方法もある。
##ペアプロのメリット
ペアプロのメリットはモブプロのメリットとほぼ同じである。
- 1人で考え込まずにチームで意見を出し合うことで効率よく作業できる
- モブプロで作成したコードはレビュー済みなのでコードの質が向上する
- 1人1人が持つ知識を他の人に共有できる
- チーム全員がコードについて共通認識を持てる
- エンジニア同士のコミュニケーションの促進
#参考文献
使える! 情シス三段用語辞典105「モブプロ(モブプログラミング)」
使える! 情シス三段用語辞典104「ペアプロ(ペアプログラミング)」