Some Days You Get the Bear

IT系エンジニアの、日々の気づきや考えたこと。

ソロ、ペア よりも モブ

www.infoq.com

Langr氏は先頃,"Solo Programming, Pairing, and Mobbing: Which Is Right for You?"と題した記事を執筆し,2018 Agile and DevOps Eastで自身が行った講演のテーマを引き続き論じている。記事の中で氏は,ソロプログラミング,ペアプログラミング,モブプログラミングという3つのパターンを取り上げた。ソロプログラミングとペアプログラミングには,いずれもコミュニケーションと知識共有に関わる問題を含んでいる,と氏は言う。開発者とテスタが、"無数のインタラクションを伴うシステム"を構築している状況においては、あらゆる分離が"頭痛とコスト上昇"の原因となり得る、と氏は記事で述べている。
 
ソロプログラミングにおいては、これがコスト上昇とコミュニケーションの遅れや、調整不足による退行の要因になる、というのが氏の意見だ。ペアプログラミングに関しても、氏は、チーム内におけるサブサイロの形成や、複数のペアを効率的に管理する上でのオーバーヘッドから発生する同様の問題を指摘する。これは、ひとつのソフトウェアインクリメントを協力的かつ同時に作業するという、チーム規模のモブプログラミングの持つメリットとは対照的なものなのだ。Langr氏はこれを、モブプログラミングが、他の状況で見られるいくつかの障害を取り除いた結果だと見る。モブプログラミングのメリットとして氏が挙げるのは、次のようなものだ。
 

  • "誰と誰がペアになるのか?"という問題に対する調整や個人的偏見の除去。
  • "同じ部屋にいるため、全員が事態を理解している"ことによる、意見調整の必要性の除去。
  • 共同作業や教育に付きものの儀式的行為が少なくて済むこと。これらはモブプログラミングでは絶えず行われているためだ。

すべてにおいて、密な連携が必要か? ということもあるし、
となると、やはり「分業」したほうが「早い」のではないか、という議論も出てくるだろう。

しかし、そのプロジェクトにとってコミニュケーションが重要な成功要因となるならば
モブが選択肢のひとつとなると考えておいていい、ということだと思う。
また、プロジェクトの始めから終わりまででなくても、
不具合の調査・解決等、局面によって使いこなす柔軟性も必要だ。
 
などとオマケでおマヌケな蛇足を書いてみるが、
最近「みんなといっしょに」仕事している感じがあんまりしてなくて、
これでいいのかな?、と考えてみたりする材料のひとつとして
上記の記事をかみしめてみるのであった。。。
 
落ち着いて考える、時間と場所がほしいな。