前回は,TRICHORD開発チームで採用している「ペア作業」について取り上げた。今回は,ペア作業を行うに当たって注意すべき点をいくつか解説したい。

持続的なペア作業には休憩が必須

 最初に注意しなくてはならないのは,ペア作業は疲れるという点だ。2人でしゃべりながら作業するという行為は,実際にやってみると想像以上に疲れる。この疲れは体だけではなく,脳も疲れるという印象がある。1人で作業しているときには使わない部分が活性化されるために,余計疲れるのかもしれない。

 このような状況では,適度な休憩が必須だ。もちろん,ペアの判断で適当な時間に休憩をとればよいのだが,集中しているとついつい作業を延長してしまうことが多い。TRICHORDチームでは2時間を1つのタイムボックスとして作業するようにしている。コマとコマの間には30分のインターバルを設け,この時間をメールのチェックやWebブラウジングなどの1人で行う作業に当てている。このため最大でも連続2時間のペア作業となり,集中力が切れることなく作業を続けることができるのである。

すべての作業をペアでするわけではない

 TRICHORDチームでは,ペア作業を原則としているものの,すべての作業をペアで行っているわけではない。ペアで作業するかどうかは,その状況に応じてチーム,あるいは開発者個人が決定している。通常のイテレーション・プランニングで計画されたタスクは,基本的にペアで作業する。一方,軽微なバグへの対応,テスト,文書作成などについてはペアを解除して,ソロ作業(=1人作業)で実施することもある。

 ペアとソロの切り分けについては明確な線を引いているわけではないが,簡単にまとめると図1のようになる。新規の領域を扱うタスクについては,見積もりが小さい(時間がかからない)場合でも,ペアで作業を進める。もちろん新規で見積もりが大きい(時間がかかる)場合にはペア作業は必須となる。一方,既存部分の軽微なバグに対処したり,手動で回帰テストを実施したりする場合はソロで作業をすることが多い。


図1 ペア作業とソロ作業の切り分け
新規の領域を扱うタスクは,作業時間にかかわらずペアで作業する。既存の領域を扱うタスクで,かつ短時間で済む場合は1人で作業することが多い。

[画像のクリックで拡大表示]

 TRICHORDチームの初期にこんなエピソードがあった。ペア作業に慣れていないチーム・メンバーが「たまにはソロ作業しないと疲れがたまってしまう」と悲鳴を上げた。そこで,試験的に「チームとして週の1日はソロで作業する」という決まりを作ってみた。ところが,実際に2週間ほど試してみると,結局はペアで作業をしてしまうことが多かったのだ。開発者が「この作業はペアでやったほうがいいね」という判断をしていたからである。

 これは,ある程度の時間をかけて新しい領域の作業をする場合には,自然とペアになってしまうという好例だ。逆に言えば,そうでない作業はソロでやってもかまわない。どの作業でもそうだが,仮にソロで作業していても,共有が必要だと判断した場合には,開発者自身が作業の共有をしたいと手を挙げて共有を始めることもある。

品質向上は結果である

 ペア作業の効用としてよく言われるものの一つに「品質の向上」がある。ドライバとナビゲータの,2つの頭と4つの目で確認しながら進むことで,ミスや漏れを防ぎ,ソロ作業よりも集中することによって品質が向上するというものだ。

 ただ前回は,ペア作業の利点として「全体の効率化」を挙げるだけにとどめ,あえて品質の向上には触れなかった。品質の向上を第一の目的としてしまうと,ペア作業の本来の目的を見失ってしまうのではないかと考えたからである。

 ペア作業は,あくまでも「チーム内での経験の共有」「対話促進」そして「勇気」のために実施するのであって,品質の向上はその結果に過ぎない。極端な例を挙げると,たとえ品質が向上したとしても,作業している開発者たちが会話もせず,単に相手の間違いを指摘するだけの機械のようなペアでは本末転倒だ。結局のところ,ソフトウエアは人が作るものであることを忘れてはならない。

懸田 剛

チェンジビジョンでプロジェクトの見える化ツール「TRICHORD(トライコード)」の開発を担当。デジタルなハックと,アナログなハックの両方を好む。新しいやり方やツールを考えるのが好きである。個人サイトは http://log.giantech.jp/