ペアプログラミング エンジニアとしての指南書

ペアプログラミング―エンジニアとしての指南書

ペアプログラミング―エンジニアとしての指南書

  • 作者: ローリーウィリアムズ,ロバートケスラー,Laurie Williams,Robert Kessler,長瀬嘉秀,今野睦,テクノロジックアート
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2003/03
  • メディア: 単行本
  • 購入: 6人 クリック: 36回
  • この商品を含むブログ (29件) を見る

他著者情報

概要

ペアプログラミングをどのように進めていくと良いかと言った具体的な内容も記述されている.さらに,様々な研究成果を用いて定性的・定量的に裏付けしている.


特に,仕事量が2倍になる(=時間あたりの作業量が半分になる)という心配については明確な解が得られている.


なにはともあれ実践してみないことには始まらない.


目次・ポイント

まえがき
第1部 理解の習得

第1章 はじめに

第2章 ペアプログラミングの7つの神話

  1. 1人でできる仕事を2人で行えば,仕事量が2倍になる. <-新規コード追加でも+15%程度.コードの質が上がるため全体の効率は1.7倍に増加.P239
  2. 1人で作業することがなくなる.そんなことは耐えられない. <-一人になる時間があっても良い
  3. ペアプログラミングは,適切なパートナーがいないと成功しない. <-色々なペアで効果がある.第3部.
  4. ペアプログラミングは,トレーニングに適している.しかし,作業方法を覚えたら,時間の無駄である. <-色々なペアで効果がある.第3部.
  5. 私の功績は何も認められない.すべての業績をパートナーと共有しなければいけない. <-評価方法を変える.
  6. ナビゲーターは,構文エラーを見つけるだけだ.なんて退屈なんだ.コンパイラのほうが,エラーを見つけるのは上手だ. <-コミュニケーション,知識共有.
  7. 実作業を行ったのは1人の時だけだ.今は,どの仕事も終わらないだろう.ペアプログラミングには参る. <-二人が一緒にフロー(集中状態)に入ることはできる.


第3章 ペアプログラミングの7つの相乗的な方法

この7つは自然に発生するもの.

  1. ペアプレッシャー: Parkinsonの法則「仕事は,時間を使い尽くすまで大きくなる」,E係数=作業が中断されない時間/身体拘束時間
  2. ペア間の交渉: 分散認知
  3. ペア間の勇気: 正しいことをしているという自信
  4. ペアレビュー
  5. ペアデバッグ
  6. ペア間の学習
  7. ペア間の信頼


第4章 ペアプログラミングに対する管理的抵抗の克服
第5章 同僚からのサポートおよび承認の獲得

第6章 自発的なペアプログラミングへの移行


標準的な手順を決めてプロセス制御=柔軟度を減らす.


第7章 問題点

第2部 ペアプログラミングの開始

第8章 オフィスレイアウト
第9章 ペアローテーション:コミュニケーション,ナレッジマネジメント,トレーニン
第10章 その他の課題
第11章 ペアプログラミング実践の秘訣

  1. ドライバーにミスを見つけて修正する時間を与える
  2. 疲れたらパートナーにキーボードを渡す
  3. パートナーが疲れてきたらキーボードを取り上げる
  4. 新しいパートナーと作業の仕方を確認する
  5. 対立の処理方法を知る: 問題をカードに記録/10分程度離れて作業する
  6. コーディング規約を使用
  7. テスト駆動開発を使用: テストケースを記述してから作成
  8. アクティブリスニング: 論点をまとめる
  9. たくさん話をする
  10. パートナーが話を聞かないときは離席
  11. 質問する
  12. 清潔にする
第3部 ペアプログラミングパートナー選択の原則

第12章 専門家−専門家のペア
第13章 専門家−平均的なペア
第14章 専門家−新人のペア
第15章 新人−新人のペア
第16章 外向型−外向型のペア
第17章 外向型−内向型のペア
第18章 内向型−内向型のペア
第19章 ジェンダーの問題
第20章 文化問題
第21章 プロドライバーの問題
第22章 「私のパートナーは全くの負け犬だ」過剰な自尊心の問題
第23章 「パートナーはすごく賢い」過小な自尊心の問題

第4部 ソフトウェア開発プロセスにおけるペアプログラミングケーススタディ

第24章 ソフトウェア開発プロセスケーススタディにおけるペアプログラミング:XP
第25章 ソフトウェア開発プロセスケーススタディにおけるペアプログラミング:CSP

第5部 おわりに

第26章 前進,限界の超越
第27章 有能なペアプログラマの7つの習慣

意図的に実践すること

  1. 休憩を取る: 1時間ごとに立ち上がる
  2. 謙虚になる: 
  3. 自信を持つ/受容性に富む
  4. コミュニケーション: ドライバーによる内省的発声=自己説明
  5. 耳を傾ける
  6. チームのメンバになる
  7. 妥協と主張のバランスを磨く


付録A ペアプログラミングチュートリアル 
付録B ペアプログラミングの経済上の分析
 E_{post} := \omega\beta/\rhoではないか?

付録C 授業におけるペアプログラミング
付録D テスト駆動開発入門
 

参考図書等