20
XP XP XP XP寺子屋第 寺子屋第 寺子屋第 寺子屋第5 5 5回 アググ アググ アググ アググ験 2010年02月27日 XPJUG関西 Ver.1.0

Xp Terakoya 05

  • Upload
    takepu

  • View
    897

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Xp Terakoya 05

XPXPXPXP寺子屋第寺子屋第寺子屋第寺子屋第5555回回回回ペアプログラミングペアプログラミングペアプログラミングペアプログラミング体験体験体験体験2010年02月27日 XPJUG関西

Ver.1.0

Page 2: Xp Terakoya 05

アジェンダ• 注意事項!

• インストラクション

• アイスブレイク

• グループワーク

• クロージング

Page 3: Xp Terakoya 05

自己紹介• 名前 :西 丈善

• 所属 :個人サークル「Developer’s Factory」主催

• 仕事 :某メーカー系企業で組込み開発(C,C++)

• コミュニティ :– PFPPFPPFPPFP関西関西関西関西スタッフスタッフスタッフスタッフ

– XPJUGXPJUGXPJUGXPJUG関西関西関西関西スタッフスタッフスタッフスタッフ

Page 4: Xp Terakoya 05

注意事項!

Page 5: Xp Terakoya 05

注意事項!• ペアプログラミングに使用するPCは、参加者各位にてご持参願います。• PCをご持参頂ける方は、事前に開発環境のインストールおよび設定をお願

いします。言語/環境については、ペアプロで使用したいものをご用意願います。ペアプロの相手は、事前に相手を見つけて2人1組で参加されるか、または当日参加者の中から見つけて頂くことになります。

• ペアで参加申し込みされる場合でも、人数把握のためお一人づつの参加申し込みにご協力をお願いします。

• ペアがいない(又は見つからない)場合、見学のみの参加も可能です。• PCの破損及び故障について、XPJUG関西では一切責任を負いません。あら

かじめご了承願います。• PCの持参については、個人の判断でお願いします。• 他の人のマシンをご利用頂く場合、汚したり壊したりしない様、細心の注意

を払って下さい。• 万が一、マシンを壊してしまった場合、修理費をご負担頂く場合があります。

Page 6: Xp Terakoya 05

インストラクション

Page 7: Xp Terakoya 05

本日のゴール• ペアプロを実際に体験頂きます。

– 実際実際実際実際にペアプロするにペアプロするにペアプロするにペアプロする

– ペアプロをライブでペアプロをライブでペアプロをライブでペアプロをライブで観戦観戦観戦観戦するするするする

• 体験した感想を全員でシェアする。

Page 8: Xp Terakoya 05

ペアプログラミングとは• 準備するもの

– 開発者開発者開発者開発者 2222人人人人

– パソコンパソコンパソコンパソコン 1111台台台台

• 1台のパソコンを使って2人でプログラミングする

• 「ペア」で「プログラミング」するから「ペアプログラミング」

http://www.nikkeibp.co.jp

Page 9: Xp Terakoya 05

HowToペアプログラミング(1)• 1.準備

– ペアをペアをペアをペアを見見見見つけるつけるつけるつける

– コードをコードをコードをコードを書書書書くくくく人人人人((((ドライバードライバードライバードライバー))))ともうともうともうともう1111人人人人((((ナビゲーターナビゲーターナビゲーターナビゲーター))))をををを決決決決めるめるめるめる

• 2.手短な設計をする

– 仕様仕様仕様仕様をををを決決決決めるめるめるめる

– ToDoToDoToDoToDoにににに落落落落とすとすとすとす

– 各各各各ToDoToDoToDoToDoのののの優先順位優先順位優先順位優先順位をををを決決決決めめめめ、、、、見積見積見積見積もりするもりするもりするもりする

ペアを見つける

仕様を決める

ToDoに落とす

見積もりする

Page 10: Xp Terakoya 05

HowToペアプログラミング(2)• 3.実行

– ドライバーはコーディングするドライバーはコーディングするドライバーはコーディングするドライバーはコーディングする。。。。

– ナビゲーターはドライバーをナビゲートナビゲーターはドライバーをナビゲートナビゲーターはドライバーをナビゲートナビゲーターはドライバーをナビゲート((((レビューレビューレビューレビュー、、、、ToDoToDoToDoToDoのののの確認確認確認確認、、、、実績時間記入実績時間記入実績時間記入実績時間記入、、、、相談相手相談相手相談相手相談相手、、、、そのそのそのその他他他他もろもろもろもろもろもろもろもろ))))するするするする。。。。

– ドライバーがドライバーがドライバーがドライバーが詰詰詰詰まってしまったらまってしまったらまってしまったらまってしまったら、、、、ナビゲーターとナビゲーターとナビゲーターとナビゲーターと交代交代交代交代するするするする。。。。

– ドライバーとナビゲーターはドライバーとナビゲーターはドライバーとナビゲーターはドライバーとナビゲーターは、、、、高品質高品質高品質高品質なソフトウェアをすばやくなソフトウェアをすばやくなソフトウェアをすばやくなソフトウェアをすばやく開開開開発発発発するためするためするためするため、、、、持持持持てるてるてるてる力力力力をををを総動員総動員総動員総動員しししし開発開発開発開発にににに励励励励むむむむ。。。。

– 疲疲疲疲れたられたられたられたら適度適度適度適度にににに休息休息休息休息をををを取取取取るるるる。。。。

Page 11: Xp Terakoya 05

ペアプログラミングは必要?• XPとは、アジャイル開発の1つである。

• アジャイル開発とは、「効率よくしっかりソフトを開発しよう」という考え方である。

• ペアプロは、アジャイル開発の考え方にマッチした開発手法である。

• 必要/不用は、上記の価値に基づき判断するべきである。

Page 12: Xp Terakoya 05

ペアプログラミングで得られる効果• 品質面

– レビューしながらレビューしながらレビューしながらレビューしながら開発開発開発開発するためするためするためするため、、、、レビューレビューレビューレビュー密度密度密度密度がアップがアップがアップがアップ

– ペアのペアのペアのペアの指摘指摘指摘指摘でででで漏漏漏漏れれれれ////抜抜抜抜けがけがけがけが低減低減低減低減するするするする

• 効率面

– 隣隣隣隣のののの相談相手相談相手相談相手相談相手をををを使使使使いいいい、、、、シンキングタイムシンキングタイムシンキングタイムシンキングタイム削減削減削減削減

– 誤誤誤誤りをりをりをりを即座即座即座即座にににに指摘指摘指摘指摘////修正修正修正修正

– 1111人人人人がががが休休休休んでもんでもんでもんでも、、、、もうもうもうもう1111人人人人がカバーがカバーがカバーがカバー

– ペアでスキルがペアでスキルがペアでスキルがペアでスキルが伝播伝播伝播伝播されるためされるためされるためされるため、、、、開発開発開発開発しながらしながらしながらしながら教育教育教育教育がががが可能可能可能可能

• メンタル面

– しっかりしっかりしっかりしっかり開発開発開発開発しているしているしているしている充実感充実感充実感充実感

– 成功成功成功成功をををを分分分分かちかちかちかち合合合合うううう相手相手相手相手がいるがいるがいるがいる

Page 13: Xp Terakoya 05

ペアプログラミングの弱点• 慣れてくると、サボってしまう

• 長時間続けると、ソロプログラミングがしたくなる

• 嫌な相手とペアを組むと効率が低下する

• 開発以外の作業が進まなくなる

Page 14: Xp Terakoya 05

ペアプログラミング十箇条• 1.ドライバー,パートナーは5~10分毎で適当に交代しよう.ドライバーは引き際が肝心.パート

ナーの助言が多くなったら交代.• 2.やることを紙に項目として書き出そう.終わった項目を横線で消そう.• 3.コードより先にテストを書こう.テストをパスさせるための最もシンプルな実装をしよう.• 4.パートナーは,ツッコミの要領で助言しよう.

– もっとシンプルなもっとシンプルなもっとシンプルなもっとシンプルな方法方法方法方法はないかはないかはないかはないか– コードはコードはコードはコードは意図意図意図意図をををを表現表現表現表現しているかしているかしているかしているか– クラスやメソッドクラスやメソッドクラスやメソッドクラスやメソッド,,,,変数変数変数変数のののの名前名前名前名前はははは意図意図意図意図をををを表表表表しているかしているかしているかしているか....– タイプミスはないかタイプミスはないかタイプミスはないかタイプミスはないか....括弧括弧括弧括弧のののの数数数数はははは合合合合っているかっているかっているかっているか....– テストはテストはテストはテストは先先先先にににに書書書書いたかいたかいたかいたか....– 次次次次のテストはどうのテストはどうのテストはどうのテストはどう書書書書こうかこうかこうかこうか....テストしテストしテストしテストし忘忘忘忘れていることはないかれていることはないかれていることはないかれていることはないか....– 全体全体全体全体からからからから俯瞰俯瞰俯瞰俯瞰してバランスはとれているかしてバランスはとれているかしてバランスはとれているかしてバランスはとれているか....ヘンなヘンなヘンなヘンな方向方向方向方向にににに突突突突きききき進進進進んでいないかんでいないかんでいないかんでいないか....– コーディングコーディングコーディングコーディング標準標準標準標準にあっているかにあっているかにあっているかにあっているか....

• 5.パートナーは,じれったくなったら「わたしにやらせて!」と言おう.• 6.パートナーは,理解できないコードを見たらドライバーに聞こう.「なんでそうなの?」• 7.ドライバーは,パートナーの助言にいつでも耳を貸そう.そしてその助言に返事をしよう.• 8.ドライバーは,行き詰まったら助けを求めよう.このメソッド,ちょっとお願いできないかな?• 9.腹が減ってはプログラミングはできぬ.一緒にお菓子を食べよう.• 10.楽しくやろう.Enjoy Pair Programming!

http://www.objectclub.jp/

Page 15: Xp Terakoya 05

アイスブレイク

Page 16: Xp Terakoya 05

「しりとらず」• 出されたお題に対し思いつく事を30秒話す

– 色色色色、、、、形形形形、、、、においにおいにおいにおい、、、、味味味味・・・・・・・・・・・・

– 思思思思いいいい出出出出、、、、イメージイメージイメージイメージ、、、、類似品類似品類似品類似品、、、、使使使使いいいい方方方方・・・・・・・・・・・・

• 次の人にまったく関係無いお題を出す

パンはおいしいです・・・

お題は石です

お題はパンです

Page 17: Xp Terakoya 05

グループワーク

Page 18: Xp Terakoya 05

グループワーク• 11:50まで、ペアプログラミングを実施頂きます。

– 10:0010:0010:0010:00~~~~10:5010:5010:5010:50 ペアプログラミングペアプログラミングペアプログラミングペアプログラミング

– 10:5010:5010:5010:50~~~~11:0011:0011:0011:00 休憩休憩休憩休憩

– 11:0011:0011:0011:00~~~~11:5011:5011:5011:50 ペアプログラミングペアプログラミングペアプログラミングペアプログラミング

• 高品質なソフトウェアを短期間で開発して下さい。

• 何を作るかはペアにお任せします。

• 素晴らしい作品には賞品賞品賞品賞品を差し上げます。

Page 19: Xp Terakoya 05

クロージング

Page 20: Xp Terakoya 05

お疲れ様でした。

2010年02月27日

XPJUG関西