上手@データ通信システムです。
原文が見れるので、直訳スタイルにしました。
Pair Programming(ペア プログラミング)
全ての重要な開発は複数のペアによって行われる。我々は以下を見つけた。
進捗は早く、我々は方向性を失うことが無く長く仕事ができ、品質は高い。
典型的には、ある人は、コードの向かう方向性のベストの感覚(feel)をもっている。
観察者は、細かなエラー(スペリング、フォーマッテイング、メソッド名)に気づき、
同時に開発の進行に関するより広い全般的(overall)な視野を持つ傾向がある。
タイピストはそれぞれのメソッドを工作(craft)しており、観察者はストラテジとごく
細かいことを同時に見ているかのようだ。
我々は以下を見つけた。ほんのちょっと実行してみるだけで、多くの人々はすぐに
ペア開発を採用する。彼らはそれを好きになる、なぜなら進捗がはっきりと速くな
るからだ。
プロジェクトの観点からは、ペアプログラミングの実行は、少なくとも2人の人が
コードにとても良くなじんでいる(familiar)ことを保証する。これは、チームが別の
タスクに向かうときにすぐ報われる(pay off)。
一方で、複雑なタスクでは集中が必要とされ、開発者は集中するためのプライ
バシーが必要だ。
・我々はプログラマが彼ら独自にプロトタイプすることを認める。進められることは
その後にプロトタイプを投げ捨て、パートナーと一緒に新しいものを作りなおすこ
とだ。もし、ひとりで何かを作り上げたら(週末をかけてのように)、パートナーと
一緒に再レビューする。これは、チェックが続くなら(if kept in check)OKだ。
それを、ペアリングを避けるための賢い方法と考えてはならない。
・もしあるタスクがとても複雑で、かなり集中する必要があるなら、それは全く
あきらかだ、我々は間違えたことをやっている。我々は見つけた、我々の全て
のプロジェクトでこのガイドラインからはずれた例外はない : 単純性はいつも
可能であり、いつもベターである。
一方で、私は一人で仕事をするのは好きだ。
・これも良い。 (You just can't work with usへのリンク)
ペアプログラミング スクリーンプレイ(へのリンク)
最近comp.lang.smalltalkでのやりとりで、三人のプログラマにより、ペアプロ
グラミングがどのように行われるかの良い例です。
#以下は、このスクリーンプレイの最後の6行です。
彼女はコードをすぐ変更する。全てのことは何分かの間に起きた。(彼らの)
役割があれこれ(back and forth)ダイナミックに変わったことに注意して下さい。
Jackはアプローチを始め、Jillがそれを受けた。Jillがコードをスケッチしている
時、Jackは彼女を、シンタックスサポートおよびスタイルガイドラインでバックア
ップした。パートナー達は、お互いにスムースに活動した、ある物はバックアッ
プモードサポートに、タイピストはコードを打ち込む。
ぶつかり合い(conflict)は無い:2つの人々が一つのミッションで協同作業を
行い、リードは、瞬間瞬間でスイッチされる。ペアプログラミングの一番いい
状態だ。(? Pair programming at its best)
オリジナル http://www.xprogramming.com/
Copyright (c) 1999, REJeffries et al. (ronjeffries@....org)