BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ペアプログラミングがスピード・集中・フローをどのように向上させたか

ペアプログラミングがスピード・集中・フローをどのように向上させたか

原文リンク(2025-07-10)

Ola Hast氏とAsgaut Mjølne Söderbom氏はQCon Londonペアプログラミングによる継続的デリバリーについて講演をした。彼らのチームはペアプログラミングとモブプログラミングをTDDと共に使用している;ソロタスクや個別コードレビューはない。このアプローチはコード品質を向上させ、無駄を減らし、知識の共有を可能にする。頻繁な休憩は集中とフローを維持するのに役立つ。

チームはプルリクエストを送りつけ合うのではなく複数人でコードレビューを行う、とMjølne Söderbom氏は説明した。

Ola氏と私が2021年に同じチームで働き始めたとき、すべてを複数人で作業するとを決めました。全員が同意したわけではないので一部のチームメンバーはまだ独力で作業していましたが、Ola氏または私が関与している場合、オプションはありません-ペアプログラミングするしかありません。

Mjølne Söderbom氏はペアプログラミングを行いたいチームメンバーが少なくとも二人いることが非常に強力であると述べた。チーム全体を一人で説得するのは難しいことがある。彼らは新しいチームメンバーのオンボーディングにもペアプログラミングを多用している。しばらくすると全員がこれが進むべき道だと理解したと彼は言った。

すべてのタスクは複数人で作業するのに適しており、誰も特定のタスクの責任を一人で持つことはないとMjølne Söderbom氏は述べた。タスクには常に少なくとも二人が関与している。一人が関与できない場合、もう一人が単独でコードを書き、その後再び同期をとるだけだ(例えば1人が会議に出席しなければならない場合)。

彼のチームには四人の開発者がいて、これはMjølne Söderbom氏によると完璧なサイズだ。四人全員が関与可能な場合、二つのペアに分ける。何か新しいことに取り組んでいる場合や大きな決定をする必要がある場合は四人全員でモブを行うこともある。この方法で知識を広めてから分かれる。三人の場合は常にモブとして作業する、と彼は言った。

Mjølne Söderbom氏は彼らがドライバーとナビゲーターを7分ごとに、ペアの場合は10分ごとに交代すると説明した:

オフィスにいるときは安価なキッチンタイマーを使って時間を管理しています。同じフロアの他のチームも同じタイマーを購入したので、タイマーが鳴るのを聞くのはちょっと面白いです!リモートの人がいる場合もMS Teamsの画面共有を普通に使ってペアプログラミングします。

ドライバを変えるためにマシンをスイッチする必要がある場合、gitに迅速にコミットしてプッシュするためのエイリアスをいくつか持っているとMjølne Söderbom氏は述べた。彼らはそれぞれ異なるキーボードとキーマップ設定を持っており、時には切り替える際に別のデスクに移動する方が簡単だ。github cliのエイリアスも、作業が完了したときに迅速にプルリクエストを作成し、承認・マージするのに役立つと彼は述べた。

彼らはすべてのコードに対してTDDを行い、それを愛しているとMjølne Söderbom氏は述べた。レビューに追加の時間を費やすことはなく、すべてがプロセスの一部として行われている。彼らはすべてのコードに対してペアプログラミングとTDDを行っているため、レビューとアーキテクチャの決定は進行中に行われる、と彼は説明した:

ペアプログラミングは特定の複雑なタスクにのみ適していると主張する人もまだいます。私たちはこれが事実ではないことを学びました;すべてのタスクは複数人で作業するのに適しています。長期的にはこれが以前とは全く異なる方法でスピードと知識の共有を促進します。

彼は常にクリーンコードとコード品質に興味を持っており、ペアプログラミングはこれと密接に関連しているとMjølne Söderbom氏は述べた。彼は複数人で作業することよりも高品質を提供する他の方法やツールを思いつかないと結論付けた。

InfoQはOla Hast氏とAsgaut Mjølne Söderbom氏に彼らのチームでの働き方についてインタビューした。

InfoQ:無駄を測定し減らすためにどんなアプローチをされていますか?

Ola Hast氏:ペアリングで共同作業することのポイントは、ビルドやプロセスに時間がかかっている場合に話し始めることです。最初は問題ありませんが、何度も時間がかかると問題になります。その時、解決策や回避策について話し始めます。

非常によく時間がかかりすぎるのは直感であり、引き継ぎはそれを直接経験するまで気づかないことが多いです。チーム外の誰かの関与なしで繰り返しタスクを行えない場合や、チーム内の特定のタスクが特定の人物を必要とする場合、これらは遅延と無駄を引き起こす問題です。

人々が一人で作業している場合、待機や遅いビルドなどをかなりよく受け入れることがわかります。複数人で作業することでこの無駄を自然に減らせます。

InfoQ:コードは本番環境に進む前に承認される必要があるでしょうか?

Asgaut Mjølne Söderbom氏:すべての孤独(単独)での作業形式では、あなたのコードをレビューし承認するための誰かがいます。ほとんどの企業にはコンプライアンス要件としてレビューがあります。ペアプログラミングを行う場合、これはすでに開発作業の一部として済まされています。

InfoQ:休憩することはどれぐらい重要ですか?

Hast氏:共同作業は本当に集中しているときはかなりハードです。したがって画面やキーボードから離れて適切な休憩を取ることが重要です。

ブロックの周りを散歩したり新鮮な空気を吸ったりしてください。何をするにしてもメールやSlackをチェックするなどの他のことをしようとしないでください。

作者について

特集コンテンツ一覧

BT