Xp Terakoya 05

1,160 views

Published on

Published in: Technology, News & Politics
  • Be the first to comment

  • Be the first to like this

Xp Terakoya 05

  1. 1. XP寺子屋第5 XP寺子屋第5回 寺子屋第 ペアプログラミング体験 ペアプログラミング体験 2010年02月27日 XPJUG関西 Ver.1.0
  2. 2. アジェンダ • 注意事項! • インストラクション • アイスブレイク • グループワーク • クロージング
  3. 3. 自己紹介 • 名前 :西 丈善 • 所属 :個人サークル「Developer’s Factory」主催 • 仕事 :某メーカー系企業で組込み開発(C,C++) • コミュニティ : – PFP関西スタッフ PFP関西スタッフ 関西 – XPJUG関西スタッフ XPJUG関西スタッフ 関西
  4. 4. 注意事項!
  5. 5. 注意事項! • ペアプログラミングに使用するPCは、参加者各位にてご持参願います。 • PCをご持参頂ける方は、事前に開発環境のインストールおよび設定をお願 いします。言語/環境については、ペアプロで使用したいものをご用意願い ます。ペアプロの相手は、事前に相手を見つけて2人1組で参加されるか、 または当日参加者の中から見つけて頂くことになります。 • ペアで参加申し込みされる場合でも、人数把握のためお一人づつの参加申し 込みにご協力をお願いします。 • ペアがいない(又は見つからない)場合、見学のみの参加も可能です。 • PCの破損及び故障について、XPJUG関西では一切責任を負いません。あら かじめご了承願います。 • PCの持参については、個人の判断でお願いします。 • 他の人のマシンをご利用頂く場合、汚したり壊したりしない様、細心の注意 を払って下さい。 • 万が一、マシンを壊してしまった場合、修理費をご負担頂く場合があります。
  6. 6. インストラクション
  7. 7. 本日のゴール • ペアプロを実際に体験頂きます。 実際にペアプロする – 実際にペアプロする ペアプロをライブで観戦 観戦する – ペアプロをライブで観戦する • 体験した感想を全員でシェアする。
  8. 8. ペアプログラミングとは • 準備するもの – 開発者 2人 – パソコン 1台 • 1台のパソコンを使って2人でプログラミングする • 「ペア」で「プログラミング」するから「ペアプログラミング」 http://www.nikkeibp.co.jp
  9. 9. HowToペアプログラミング(1) • 1.準備 ペアを見 – ペアを見つける – コードを書く人(ドライバー)ともう1人(ナビゲーター)を決める コードを書 ドライバー)ともう1 ナビゲーター) • 2.手短な設計をする 仕様を – 仕様を決める ToDoに – ToDoに落とす – 各ToDoの優先順位を決め、見積もりする ToDoの優先順位を 見積もりする 見積もりする ペアを見つける ToDoに落とす 仕様を決める
  10. 10. HowToペアプログラミング(2) • 3.実行 ドライバーはコーディングする。 – ドライバーはコーディングする。 – ナビゲーターはドライバーをナビゲート(レビュー、ToDoの確認、 ナビゲーターはドライバーをナビゲート(レビュー、ToDoの確認、 実績時間記入、相談相手、その他もろもろ)する。 実績時間記入、相談相手、その他もろもろ)する。 ドライバーが詰まってしまったら、ナビゲーターと交代する。 交代する – ドライバーが詰まってしまったら、ナビゲーターと交代する。 – ドライバーとナビゲーターは、高品質なソフトウェアをすばやく開 ドライバーとナビゲーターは、高品質なソフトウェアをすばやく なソフトウェアをすばやく開 発するため、持てる力を総動員し開発に励む。 するため、 てる力 総動員し開発に – 疲れたら適度に休息を取る。 れたら適度 休息を 適度に
  11. 11. ペアプログラミングは必要? • XPとは、アジャイル開発の1つである。 • アジャイル開発とは、「効率よくしっかりソフトを開発 しよう」という考え方である。 • ペアプロは、アジャイル開発の考え方にマッチした開発 手法である。 • 必要/不用は、上記の価値に基づき判断するべきである。
  12. 12. ペアプログラミングで得られる効果 • 品質面 レビューしながら開発するため、レビュー密度 開発するため 密度がアップ – レビューしながら開発するため、レビュー密度がアップ ペアの指摘 指摘で けが低減 低減する – ペアの指摘で漏れ/抜けが低減する • 効率面 – 隣の相談相手を使い、シンキングタイム削減 相談相手を シンキングタイム削減 りを即座 指摘/ 即座に – 誤りを即座に指摘/修正 – 1人が休んでも、もう1人がカバー んでも、もう1 ペアでスキルが伝播されるため、開発しながら教育が 伝播されるため しながら教育 – ペアでスキルが伝播されるため、開発しながら教育が可能 • メンタル面 しっかり開発している充実感 開発している – しっかり開発している充実感 – 成功を分かち合う相手がいる 成功を かち合 相手がいる
  13. 13. ペアプログラミングの弱点 • 慣れてくると、サボってしまう • 長時間続けると、ソロプログラミングがしたくなる • 嫌な相手とペアを組むと効率が低下する • 開発以外の作業が進まなくなる
  14. 14. ペアプログラミング十箇条 • 1.ドライバー,パートナーは5~10分毎で適当に交代しよう.ドライバーは引き際が肝心.パート ナーの助言が多くなったら交代. • 2.やることを紙に項目として書き出そう.終わった項目を横線で消そう. • 3.コードより先にテストを書こう.テストをパスさせるための最もシンプルな実装をしよう. • 4.パートナーは,ツッコミの要領で助言しよう. – もっとシンプルな方法はないか もっとシンプルな方法はないか 方法 – コードは意図 表現しているか 意図を コードは意図を表現しているか – クラスやメソッド,変数の名前は意図を しているか. クラスやメソッド,変数の名前は意図を表しているか. – タイプミスはないか.括弧の っているか. タイプミスはないか.括弧の数は合っているか. – テストは先 いたか. テストは先に書いたか. – 次のテストはどう書こうか.テストし忘れていることはないか. のテストはどう書こうか.テストし忘れていることはないか. – 全体から俯瞰してバランスはとれているか ヘンな方向 全体から俯瞰してバランスはとれているか.ヘンな方向に突き進んでいないか. から俯瞰してバランスはとれているか. 方向に んでいないか. – コーディング標準にあっているか. コーディング標準にあっているか. 標準にあっているか • 5.パートナーは,じれったくなったら「わたしにやらせて!」と言おう. • 6.パートナーは,理解できないコードを見たらドライバーに聞こう.「なんでそうなの?」 • 7.ドライバーは,パートナーの助言にいつでも耳を貸そう.そしてその助言に返事をしよう. • 8.ドライバーは,行き詰まったら助けを求めよう.このメソッド,ちょっとお願いできないかな? • 9.腹が減ってはプログラミングはできぬ.一緒にお菓子を食べよう. • 10.楽しくやろう.Enjoy Pair Programming! http://www.objectclub.jp/
  15. 15. アイスブレイク
  16. 16. 「しりとらず」 • 出されたお題に対し思いつく事を30秒話す – 色、形、におい、味・・・ におい、 – 思い出、イメージ、類似品、使い方・・・ イメージ、類似品、 • 次の人にまったく関係無いお題を出す パンはおいしい お題は石です です・・・ お題はパンです
  17. 17. グループワーク
  18. 18. グループワーク • 11:50まで、ペアプログラミングを実施頂きます。 – 10:00~10:50 ペアプログラミング 10:00~ 10:50~ – 10:50~11:00 休憩 – 11:00~11:50 ペアプログラミング 11:00~ • 高品質なソフトウェアを短期間で開発して下さい。 • 何を作るかはペアにお任せします。 • 素晴らしい作品には賞品 賞品を差し上げます。 賞品
  19. 19. クロージング
  20. 20. お疲れ様でした。 2010年02月27日 XPJUG関西

×