ペア・プログラミングとは、2人で1つのキーボードに向かって作業をするプログラミングの方法である。ドライバー」と呼ばれる一人がキーボードを打つ。もう一人の「オブザーバー」(または「ナビゲーター」)は、入力されたコードの各行を確認し、エラーがないかチェックし、全体的な設計について考えます。
期待できるメリットとしては、より良いコード(よりシンプルな設計、より少ないバグ、より保守しやすい)、より高い士気(より楽しい!)、チーム全体の知識の共有(コードベースに関する特定の知識と一般的なプログラミング知識の両方)、より良い時間管理、より高い生産性などがあります。
1
座る前に、ある程度明確に定義されたタスクから始める。そのタスクは、1~2時間で完了できると確信できるものでなければならない。例えば、"引越しバンのデータベースコードに「メンテナンス履歴」を追加する"。コードを書き始める前に、何をするつもりかを概説しておくと役に立つかもしれない。
2
一度に1つの小さな目標に合意する:数分以内に完了できるもの。問題を言葉にして相手に伝えることで、自分の気持ちを集中させ、相手の気持ちを引きつけることができます。また、あなたが今何に取り組んでいるのかをお互いに確認することができます。
3
パートナーを頼り、パートナーをサポートする。
- 自分が運転手のときは、大きな問題を無視して、現在の小さな目標をできるだけ早く完了させる。オブザーバーがあなたのセーフティネットになることを信じましょう。
- あなたがオブザーバーであるときは、ドライバーが書いているコードを読みながら書いてください。あなたの仕事はコードレビューだ。細心の注意を払い、何一つ見逃さないようにすること。 起こりうるバグ、より大きな問題、設計を単純化したり改善したりする方法について考えてください。エラーや読めないと思ったコードはすぐに指摘すること。より大きな問題やデザイン改善のアイデアを出すには、現在の小さな目標が完了するまで待つ。運転手が現在の小さなタスクに集中できるように、これらの後のタスクをメモしておく。例えば、現在のコードがNULL入力を考慮していないことがわかったら、"NULL入力のユニットテストを追加する "と紙に書いておく。
- あなたがオブザーバーであるときは、コードに指示を出してはいけない。ドライバーは、ただ受動的にタイピングするのではなく、現在のタスクを達成する方法を能動的に考えるべきだ。そしてオブザーバーとして、あなたは細かいことを考案する必要がないという事実を利用すべきです。そうだね。NULLポインターを渡された場合の処理はどうする?"と言うのは、"OK、今すぐ'if (s == NULL) { return ...'とタイプする "より良い。
4
たくさん話す!これからやろうとしていることを言う、実装のアイデアを求める、目の前の問題を解決するためのより良い方法を求める、代替案を持ち出す、コードがカバーしていない可能性のある入力を指摘する、変数やサブルーチンのわかりやすい名前を提案する、コードをより小さなステップで実装する方法を提案する、ドライバーに必要なAPIのちょっとした知識を必要な瞬間に伝える、など。もちろん、よく聞くことも大事だ。 ペアリングがうまくいっているとき、彼らはほとんどノンストップで話し続けている。ペアリング中によく言われることをいくつか挙げてみよう:
- 「これは有効なテストだと思いますか?
- 「これは正しいテストだと思う?
- 「次はどうする?
- "私を信じて"(口に出して言うよりも、自分の主張を伝えるためにちょっとしたコードを書く方が簡単な場合)
5
頻繁に同期する。一緒に仕事をしていると、パートナーが何をしているのかわからなくなったり、現在のタスクが不明瞭になったりして、同期が取れなくなることに気づくだろう。 これは普通のことです。 そんなときは、もう一度シンクロしましょう。 良いペアリングの秘訣は、同期がとれていないことに気づいてから数秒から1分以内に、頻繁に同期をとることです。 もし5分(またはそれ以上)同期していないのであれば、ソロでコーディングしているのと同じことです。
- できる限り、やろうとすることを口に出してから実行しよう。 例えば、"ヌルケースのテストを今書きましょうか?"と。 時には、自分の考えを理解するためにコードを書かなければならないこともある。 そのときは、そうしていると言えばいい:「それが良いアイデアかどうかを確かめるために、これをタイプする必要がある。 しかし、そのような探求は1分以内にとどめておくのがベストだ。
- ヌルケースのテストを今書きましょうか」とか、「このメソッドはもう削除してもいいと思います。賛成ですか?"と聞かれたら、"はい "か "いいえ "をはっきり即答しましょう。
- キーボードの受け渡しは頻繁に行なっても構わない。たとえば、声に出して説明するよりも、コードでタイプするほうがずっと簡単に「言える」ことがある。だから、オブザーバーにキーボードを持たせてタイプさせる。その後、キーボードを戻すか、オブザーバーに運転を続けさせるか、どちらかその時点で理にかなっているほうを選んでください。
6
タスクを完了したり、問題を克服したりしたら、お祝いの時間を持ちましょう。例えば、テストに合格するたびに、お互いにハイタッチをする。また、新しいテストが失敗するたびにハイタッチをすれば、共同プログラミングとテスト駆動設計のノリノリになれるでしょう。
7
少なくとも30分ごとに、頻繁に役割を交代しましょう。こうすることで、2人とも、低レベルの詳細と全体像に同調し、フルに関与し続けることができる。 また、全力疾走はあなたを疲れさせますし、オブザーバー役に必要な警戒心を30分以上維持するのは困難です。 役割を交代することで、充電することができるのだ。
コメント
最新を表示する
NG表示方式
NGID一覧