Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ペアプログラミング復習スライド

yattom
January 25, 2022

 ペアプログラミング復習スライド

ペアプログラミングの基本とやり方について復習するためのスライドです

yattom

January 25, 2022
Tweet

More Decks by yattom

Other Decks in Technology

Transcript

  1. ペアプログラミングとは "Write all production programs with two people sitting at

    one machine. ... Pair programming is a dialog between two people simultaneously programming (and designing and testing) and to program better." (Extreme Programming Explained 2nd) 「プロダクションコードはすべて、2人で1台のマシンに向かって書くこと。…ペアプ ログラミングとは、プログラミングしながら2人で会話することだ(設計もテストも同 時にする)。会話するのは、もっと上手にプログラムするためである。」
  2. • 問題に
 切り込む
 • 前進する
 • やってみる
 • 全体を見渡す
 •

    他の可能性を 探る
 • 前進を助ける
 • 情報収集する
 • 試行錯誤する
 • 一体となって助け合う

  3. • 問題に
 切り込む
 • 前進する
 • やってみる
 • 全体を見渡す
 •

    他の可能性を 探る
 • 前進を助ける
 • 情報収集する
 • 試行錯誤する
 • 一体となって助け合う
 2つのモードを
 激しく切り替える

  4. ペアプログラミングの効果-ユタ大学の研究 プログラミング 工数は増えるが、 15%しか増えない (2倍にはならない) ペアプロだと 品質が高い (不具合が少ない) ペアプロのほうが 楽しい

    ペアプロだと同じ機能を 少ない行数で実現する (洗練された設計) “The Costs and Benefits of Pair Programming” Alistair Cockburn, Laurie Williams, 2000 https://www.researchgate.net/publication/2333697_The_Costs_and_Benefits_of_Pair_Programming
  5. ペアプログラミングの効果-ユタ大学の研究 • 作業中に間違いを見つけて直せるので、後工程に残らない (常時コードレビュー) • 不具合が減る(常時コードレビュー) • 設計がより良くなり、コード行数が減る (常時ブレインストーミングとペアリレー※) •

    ※常に相談し、意見交換し、一緒に考えることで問題解決が早くなる様子が観察さ れた • 問題解決が早い(ペアリレー) • 学習効果が高い。対象システムについてもソフトウェア開発の 技法についても(“教師の目が届く”効果) • 終了時、各自の理解している範囲が広くなる • 協力して働き会話も増えるため、情報の流れとチームのダイナ ミズムが生まれる • 仕事がもっと楽しくなる
  6. やり方まとめ 1. 最初にゴールを決め、ToDoリストを更新しながら進める 2. 手を動かすのはドライバー、ナビの指示で進む 3. もう1人はナビゲーター、相談しながら指示を出す 4. 情報を共有するためとにかくしゃべる 5.

    ドライバーとナビゲーターは交代、1人7分間 6. 遠慮せず「わからない」と言う 7. 「やったー!」と言う 8. ふりかえりをする リモートでは できるだけ顔を出す
  7. ペアプログラミングとは "Write all production programs with two people sitting at

    one machine. ... Pair programming is a dialog between two people simultaneously programming (and designing and testing) and to program better." (Extreme Programming Explained 2nd) 「プロダクションコードはすべて、2人で1台のマシンに向かって書くこと。…ペアプ ログラミングとは、プログラミングしながら2人で会話することだ(設計もテストも同 時にする)。会話するのは、もっと上手にプログラムするためである。」 「ペアプログラミングとは、プログラミングしながら 2 人で会話することだ(設計もテス トも同時にする)。会話するのは、もっと 上手 にプログラムするためで
  8. ペアプロのプロトコル 0. あいさつする 1. ゴールを決める 2. まず着手できるまでのToDoリストを作る 3. 役割を決めて作業を進める 4.

    時間や区切りで交代する 5. 適宜手を止めて相談したり、ToDoリストを見直したり、 休憩したりする 6. セッション終了時に、簡単にふりかえりをする
  9. 強みを生かし 弱みを補う 実 装 仕様 品質 実装 仕 様 実装

    仕様 品 質 実 装 仕 様 品 質 組み替え
  10. ペアの組み替えの例 • 毎週新しいペア ◦ 週40時間みっちり ◦ プロジェクトを越えることも • 1タスク1ペア、だいたい1日ごと ◦

    1タスクを担当するペアとなる ◦ チーム内であれこれする • 毎時新しいペア ◦ タスクに付く人と、あちこちする人 ◦ 必要なスキルで呼ばれたり • いろいろ工夫する!
  11. やり方まとめ 1. 最初にゴールを決め、ToDoリストを更新しながら進める 2. 手を動かすのはドライバー、ナビの指示で進む 3. もう1人はナビゲーター、相談しながら指示を出す 4. 情報を共有するためとにかくしゃべる 5.

    ドライバーとナビゲーターは交代、1人7分間 6. 遠慮せず「わからない」と言う 7. 「やったー!」と言う 8. ふりかえりをする リモートでは できるだけ顔を出す