- 参考: 結城浩さんのドキュメント
- ペアプログラミングとは、本来は二人が一つのキーボードでプログラミングをすること。
- 本講義では互いにノートPCを所有しており、カスタマイズしていくと自身のPC以外では作業しづらくなる。このため、「Aさんが作業する際にはAさん自身のPCで作業し、その様子をBさんが眺める。Bさんが作業する際にはBさん自身のPCで作業し、その様子をAさんが眺める。」という形でやろう。
- driverはキーボードを叩き、observer(あるいはnavigator)はdriverの書くコードを眺め、エラーや設計を吟味する。
- driver = 車の運転者。問題解決の中心。
- observer = 助手席に乗る人。運転を眺めながら取り組み方全般について吟味する。
- 大前提
- 優先度: 作業効率<情報共有
- 「作業を分担して効率よく問題解決に取り組む」ことは求めていません。ペアプログラミングでは、二人で同一PCを使って作業に取り組み、プログラミング3ステップ(理解・整理・翻訳)を言葉で説明することで、互いに刺激し合いながらノウハウを共有することが目的。
- 喋る
- すべてのことを喋りながら作業する。頭の中に思い描いていることを言葉に して出そう。
- 「喋りながら作業する」こと自体に慣れていないと難しい。最初はゆっくりで構わないし、「喋る->作業->喋る->作業」を細かく切り替えながらでも構わない。少しずつ慣れよう。
- 悩むのも良いが 「一人で悩む」のは十秒程度 に留めよう。二人で解決できない場合には、周囲のグループや/先輩/先生に聞こう。
- 優先度: 作業効率<情報共有
- step 1: 作業を決める。
- e.g., 「演習1に取り組もう。タイトルを眺める限りではPythonインタプリタを使うみたいだね。」「インタプリタって何だっけ?」
- step 2: 役割(driver, observer)を決める。
- e.g., 「取り敢えず私がdriverやるから、次変わってね。」「苦手意識があるから私からdriverやっても良い?」「今のどうやって調べたの? 何故そのキーワードでググろうとしたの?」
- step 3: タスクに取り組む。
- 作業中はお互い何をやっているか把握する。
- パートナーが今なにをやってるかわからなくなったり、今なにをするべきか見失ったりすることはよく起こる。
- 認識がズレだしたら1分以内に話し合って頭の中の同期を取ること。5分もおいてけぼりにしてしまうと、一人でプログラムを書くのと同じことになる。頻繁に同期をとることがペアプログラミングのミソだからだ。
- 作業中はお互い何をやっているか把握する。
- step 4: 交代する。