InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

ペアプログラミングは大衆向けでない?

作者 Mike Bria , 翻訳者 金森 諭 投稿日 2009年9月28日

セクション
プロセス/プラクティス
トピック
Agile in the Enterprise ,
Agile ,
アジャイル技術
タグ
Organizational Patterns ,
Pair Programming

原文(投稿日:2009/09/23)へのリンク

ペアプログラミングはここ数年で一番議論が続けられているプラクティスのひとつだ。ほとんどの支持者はペアプログラミングの利点をほめたたえることを惜しまないが、その人たちでもペアで作業することの導入に苦労があることを認める人は多いだろう。それはなぜか。Obie Fernandez氏はそうなる理由と考えられる10の項目を挙げている。

氏の会社Hashrocketの従業員であるDesi McAdam氏とJim Remsik氏の2人がペアプログラミングで得られる恩恵についてニューヨークタイムス誌へ寄稿した後、氏による示唆に富むブログ記事においてペアプログラミングが多くの職場で成功しない10の理由が概説された。氏はまずペアプログラミングの利点に対する純粋な思いを述べて氏の見解をそっと示してから、「ペアプログラミングはHashrocketが他社に負けないもっとも重要な事柄のひとつです」と述べている。

それに続いて「とりわけペアプログラミングはおおよそうまくいかないだろう、と多くのアジャイル理想主義者に対して私が教えてあげるべきと思うようになってきた事柄のひとつです」と言い、その理由をリストアップしている。

  • 10 - たいていのソフトウェア管理者はハードウェアへの投資をしたくないため。効果的なペア作業には良い設備が必要になるが、たいていの職場ではその投資を望んではない
  • 9 - たいていのソフトウェアの現場はペアプログラミングに最適化されてないため。たいていのソフトウェアの現場ではパーティションで区切られたスペースにプログラマがいて、そのようなスペース作りはペアプログラミングに向いてない
  • 8 - たいていの現場では従来型の雇用方法を採用しているため。良いペア作業をするということは、その環境に適した人材が必要ということだが、たいていの企業の雇用方法はそのような人材の確保にあまり役立たない
  • 7 - たいていのソフトウェアの現場では反社会的な行動を大目に見るため。ペア作業には謙虚さ(Obie氏の表現によれば馬鹿がいないというルール)が必要となる。反社会的(そして非健康的)な行動はペア作業と相容れないが、多くの現場ではプログラマの行儀の悪さを正すことに熱心ではない。
  • 6 - たいていのソフトウェア人はペア作業の生産性を理解してないため。「作業効率を半分にしろって?」というペア作業に対する古くからの誤解がある
  • 5 - たいていのソフトウェアの現場では適格の満たないディベロッパを雇っているため
  • 4 - たいていのソフトウェアの現場で過労と人員不足に陥っているため。ペア作業は、特に考えなしのものであるほど、より多くの人員が必要となる(しかし必ずしもより多くの時間が必要となるわけではない)が、多くの現場ではそのような状況に備えてない
  • 3 - たいていのソフトウェアディベロッパは、一緒に仕事をしている人たち全員を好いているわけではないため。社交的な人たちから成る小さなチームにいるのでないかぎり、一緒に仕事をしてハッピーになるには困難な時間をすごさないといけない
  • 2 - たいていのソフトウェアディベロッパはそのような面倒なことをしたいと思わないため。ペアプログラミングは情熱的なものであり熱心に仕事をしないといけなくなるものだが、多くの人々はそのような面倒をする動機をもたない。
  • 1 - たいていのソフトウェアの現場では優秀さのことを本当には気に懸けていないため。ペア作業に投資することは技能に投資することになるのだが、多くの現場ではそのような投資に興味がない

Obie氏のリスト(ここではかなり要約をしたので、判断をされる前に元記事全体を読んでいただきたい)は意見を表明したという以上に多くの反応を呼び起こした。そのほとんどは元記事自体の長いコメントリストに含まれている。

Brian Guthrie氏はObie氏の記事に対する注目すべき反論の中で自身のリストを作っている。

(Obie氏と)Hashrocketの想定する環境はペア作業について最善の環境をもたらしますが、最初にペアプログラミングを実践し始めた人たちがそのような状況にあったわけではありませんし、みながそのような環境にないといけないわけでもありません。

そしてObie氏が見逃しているとGuthrie氏が考える5つの項目をあげている。

  • 5 - ペアプログラミングには高価なハードウェアはいりません。一台のマシン、予備のマウスとキーボード、そして会議室さえあればペア作業ができます。
  • 4 - 全員と一緒になる必要はなく、今誰かひとりを好きであればいいのです。一緒になってもうまくいかない人たちをペアにしてはいけません。基本的に健康的なペア作業をおこなうことがどの現場でもできることです。
  • 3 - 多くの会社はペア作業を試すのを歓迎しています。組織は人々が言うほどペア作業を怖れてはいません。
  • 2 - 多くのソフトウェアの現場はROI(投資収益率)について深く関心を寄せています。たいていの現場では「優秀さ」それ自体には関心がありませんが、障害を減らし知識を広めることには関心があります。こういったことはペア作業でうまくやれることです。
  • 1 - ペアプログラミングはエリートだけのものではありません。ペア作業の恩恵は誰でも受けて享受できるものです。ハードコアな人たちだけではありません。

時間を取ることになるがObie氏の記事Guthrie氏の記事も元記事を読んでほしい。あなたの経験や考えになにかと共鳴するようなポイントが多く見つかるはずだ。

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。