Mais conteúdo relacionado
Semelhante a eXtremeProgramming入門 (20)
eXtremeProgramming入門
- 2. ジコ、ショウカイ。
H/N: You&I(読み:ユーアンドアイ)
出身: 生まれも育ちも名古屋市
年齢: 30代中盤
本職: 商学部出身の職業プログラマ
言語: C++, C#, VB6.0, 日本語COBOL
日記: http://d.hatena.ne.jp/youandi/
所属: プログラミング生放送 名古屋支部
名古屋アジャイル勉強会
2
- 3. ATTENTION
本資料は後日公開致します。
資料の内容について全ての
メモを取る必要はありません。
セッション内容に集中して
頂ければ幸いです。
3
- 4. AGENDA
1. はじめに
2. アジャイル開発とは
3. eXtremeProgrammingとは
4. ワークショップ
5. まとめ
4
- 5. AGENDA
1. はじめに
2. アジャイル開発とは
3. eXtremeProgrammingとは
4. ワークショップ
5. まとめ
5
- 6. 1. はじめに
今回のテーマ「XP入門」ですが、このテーマを選ん
だ目的や動機について。
告知ページにも書いた通り、昨年はScrumを
テーマにした勉強会を開催しました。近年
ScrumとXPを組み合わせて利用される事が多
い割にはXPについては語られる機会は少なく感じ
ます。
また次回が丁度第50回目の節目を迎える事も
あり、第2回のテーマをもう一度と考えました。
6
- 7. AGENDA
1. はじめに
2. アジャイル開発とは
3. eXtremeProgrammingとは
4. ワークショップ
5. まとめ
7
- 11. AGENDA
1. はじめに
2. アジャイル開発とは
3. eXtremeProgrammingとは
4. ワークショップ
5. まとめ
11
- 12. 3. XPとは (1/14)
XP(eXtremeProgramming)とは、先述のア
ジャイルマニフェスト公開の2001年よりも前の
1999年にKent Beck氏の著書「eXtreme
Programming explained」としてまとめられた
ものです。
アジャイル開発と同様にXPにも原則とプラクティス
がありますが、XPの場合はプラクティス(TDD, CI,
ペアプログラミング, リファクタリング, etc…)の方が
良く知られていますね。
12
- 13. 3. XPとは (2/14)
XPの価値
1. コミュニケーション(Communication)
2. シンプルさ(Simple)
3. フィードバック(Feedback)
4. 勇気(Courage)
5. 尊重(Respect)
価値とは理念である。何を考え何を行うのかを判
断するのに使用する大まかな基準である。
13
- 14. 3. XPとは (3/14)
XPの原則 (1/2)
1. 人間性
2. 経済性
3. 相互利益
4. 自己相似性
5. 改善
6. 多様性
7. 反省
8. フロー
9. 機会
14
- 15. 3. XPとは (4/14)
XPの原則 (2/2)
10. 冗長性
11. 失敗
12. 品質
13. 小さなステップ
14. 責任の受け入れ
価値は抽象的な概念であるので、この原則がXP
を行っていく上での指針となる。何をすべきなのか
迷った時にはこの原則に立ち返るべきである。
15
- 16. 3. XPとは (5/14)
XPのプラクティス (1/3)
基礎プラクティス (1/2)
1. 全員同席
2. チーム全体
3. 情報豊富な作業空間 (見える化・可視化)
4. 活気のある仕事
5. ペアプログラミング
6. ペアプログラミングと個人の空間
7. ストーリー (ユーザーストーリー)
8. 1週間サイクル (イテレーション)
9. 四半期サイクル (リリース)
16
- 17. 3. XPとは (6/14)
XPのプラクティス (2/3)
基礎プラクティス (2/2)
10. ゆとり
11. 10分ビルド
12. 常時結合 (CI)
13. テストファーストプログラミング (TDD)
14. インクリメンタル設計 (リファクタリング)
応用プラクティス (1/2)
1. 実顧客の参加 (オンサイト顧客)
2. インクリメンタル配置
3. チームの継続
17
- 18. 3. XPとは (7/14)
XPのプラクティス (3/3)
応用プラクティス (2/2)
4. チームの縮小
5. 根本原因の分析 (なぜなぜ分析)
6. コードの共有
7. コードとテスト
8. 単一のコードベース
9. 日時配置 (自動化)
10. 協議によるスコープ契約
11. 利用分支払い
プラクティスは原則を実践形態で表現したもの。
18
- 19. 3. XPとは (8/14)
ここで、もう一度整理しますと・・・
XPの価値
価値とは理念である。何を考え何を行うのかを判断するのに
使用する大まかな基準である。
XPの原則
原則はXPを行っていく上での指針となる。何をすべきなのか
迷った時にはこの原則に立ち返るべきである。
XPのプラクティス
プラクティスは原則を実践として表現したもの。
大事なのは、XPとは単なるプラクティスの寄せ集
めではないという事です。
19
- 20. 3. XPとは (9/14)
さて今日紹介したなかで、アレ?アレはどこ行った
の?と思う方もいらっしゃるかも知れません。
例えば・・・
週40時間労働
スタンドアップミーティング
コーディング規約
メタファ(比喩) ※最近ではユビキタス言語
計画ゲーム
スパイク(計画スパイク、スパイクソリューション)
20
- 21. 3. XPとは (10/14)
先程の説明はXP入門第2版をベースに紹介しま
した。これは初版から第2版の間に、XP自身も
フィードバックされ、改善していった結果だと思いま
す。価値・原則・プラクティスそれぞれに変更が
入っています。
ではXPを実践するにあたり、基盤となるものに変
化・変更があるのに、どのようにして現場に導入す
る事ができるのでしょうか?
その解となるのが、価値に上がっている「シンプル
さ」「フィードバック」です。
21
- 22. 3. XPとは (11/14)
人の手が入り続けているものは変化に強い。とい
う考え方があります。
例えば法律や法案の場合、影響範囲やバッチサ
イズ(手順)が大きい為に変更し辛いですが、それ
に対してシンプルに小さく対応するものが条例です
ね。
開発プロセスも小さく・シンプルにする事で、変化
に強くなり、更にフィードバックで軌道修正し続け
ます。
22
- 23. 3. XPとは (12/14)
XPの導入の話に戻りますが、そもそも導入が難し
いというのは、XPの書籍を読んだりしても、何をす
べきかはハッキリと書かれていないからだと思います。
まず始めにやるべき事は、現状分析です。自分
達の今を知り、足りないものを見つけ、理想を設
定し、それに向かう目標を立てて、実践してフィー
ドバックする。これを継続的に行う事こそがXPやア
ジャイル開発の目指すものだと思います。
23
- 24. 3. XPとは (13/14)
また、XPのプラクティスやアジャイルのプラクティスは
単体で利用するのではなく、色々と組み合わせる
事によって相乗効果がもたらされます。
では何と何を組み合わせると良いのでしょうか?
現状の分析やプラクティスの組み合わせを考える
上で役立つ手法がマッピングです。過去の名古
屋アジャイル勉強会でも頻繁にマッピングを行う
ワークショップを行っています。
第47回本会 サッカーマッピング
第45回本会 PMBOK知識エリアマッピング
第39回本会 テスト手法マッピング
24
- 25. 3. XPとは (14/14)
最後に、冒頭で紹介したScrumと組み合わせる
事が多いという点について、Scrumは人とのコミュ
ニケーションだったり、作業のチェックポイントとして
のイベントなどが定義されています。それに対して
XPは技術的なプラクティスが多いので組み合わさ
れる事が多いのかなと、私は思います。
ただ、私が今回XPについて色々調べた中で感じ
たのはXPのプラクティスはチームを意識したもので
あると言う事です。アジャイル開発で大事なのは
チームとして行動できるかが大事だと感じました。
25
- 26. AGENDA
1. はじめに
2. アジャイル開発とは
3. eXtremeProgrammingとは
4. ワークショップ
5. まとめ
26
- 28. 自己紹介 (2/4)
朝会とは?
1. 毎日決まった時間と場所で立ったまま行う十数分以
内のチームミーティング。
2. プロジェクトの状況を示すバーンダウンチャートやタスク
ボードの前で行う。
3. 3つの事について話す。
1. 前回の朝会から今までに何をやったか
2. 次の朝会までに何をするか
3. 作業の妨げや問題になっている事はなにか
4. 朝会の場では議論をしない。必要なら朝会後に。
5. チーム外の人の立ち会いは認めるが発言権はない。
28
- 29. 自己紹介 (3/4)
自己紹介の内容は以下の3つで行って下さい。
1. 前回の晩ご飯のメニューは何か?
2. 今回の勉強会に参加した目的
3. 自分の職場等で朝会や朝礼は実施しているか?
通常は前もって朝会の発言内容を準備しておき
ます。今から自己紹介の内容を考える時間を設
けます。その時間で自己紹介内容を考えて下さ
い。用紙に書き出しても良いです。
時間:2分間
29
- 30. 自己紹介 (4/4)
それではスタンドアップ!ご起立下さい。
通常は司会進行役を設けますが、今回はなしと
します。私から向かって左前の方から時計回りで
自己紹介を行って下さい。お名前の紹介の後に
以下の3つ事柄について話をして下さい。
1. 前回の晩ご飯のメニューは何か?
2. 今回の勉強会に参加した目的
3. 自分の職場等で朝会や朝礼は実施しているか?
時間:8分間
30
- 31. ワークショップ1 - 朝会(1/6)
たった今、XPのプラクティスを一つ実践して頂きま
した。いかがでしたでしょうか?
この朝会の目的としては以下のものが挙げられま
す。
チーム内の情報共有
チーム内のコミュニケーション促進
問題の早期発見
無駄な会議の抑止
傾聴
31
- 32. ワークショップ1 - 朝会(2/6)
傾聴!?
「傾聴」とは、カウンセリングやコーチングにおけるコミュニ
ケーションスキルの一つです。
人の話をただ聞くのではなく、注意を払って、より深く、
丁寧に耳を傾けること。自分の訊きたいことを訊くので
はなく、相手が話したいこと、伝えたいことを、受容的・
共感的な態度で真摯に“聴く”行為や技法を指します。
それによって相手への理解を深めると同時に、相手も
自分自身に対する理解を深め、納得のいく判断や結
論に到達できるようサポートするのが傾聴の狙いです。
http://kotobank.jp/word/%E5%82%BE%E8%81
%B4
32
- 33. ワークショップ1 - 朝会(3/6)
ちゃんと自分以外の方の自己紹介の内容を聞い
ていましたか?
どれだけちゃんと聞いていたのか、用紙に書き出し
てみましょう!!!
カンニングはしないように!!!
時間:6分間
33
- 34. ワークショップ1 - 朝会(4/6)
答え合わせ?
各テーブルで自分が書き出した内容について1人ずつ
確認してみましょう。
聞く・伝えるこれらにもシンプルさが求められます。
時間が余ったら朝会についてディスカッションしてみ
ましょう。
やっている・やっていない
司会の持ち回り
マンネリ化していないか 時間:10分間
34
- 35. ワークショップ1 - 朝会(5/6)
朝会の目的
チーム内の情報共有
誰が何をしているか。
チーム内のコミュニケーション促進
毎日誰とも会話しないで出社・帰宅してないか?
問題の早期発見
嘘やごまかし隠し事はないか?
無駄な会議の中止
要点と問題のみを報告。
傾聴
毎日同じ事を言い続けているメンバーはいないか?
35
- 36. ワークショップ1 - 朝会(6/6)
朝会はXPのプラクティスの中でも、お手軽に導入
できるプラクティスです。まだ導入していないなら是
非やってみましょう。
朝会と組み合わせるべきプラクティスは、先程も紹
介した、バーンダウンチャート(タスクの消化グラフ)
やタスクボード(担当毎の作業状況)によるプロ
ジェクトの見える化です。
オブジェクト倶楽部 - プロジェクトファシリテーション
http://objectclub.jp/community/pf/
36
- 37. ワークショップ2 - ペアプロ(1/11)
ペアプログラミングとは
ペアプログラミングは、1953年~1956年頃に初めて
実践された。
ペアプログラミングとは、2人のプログラマが、横並びに
1台のPCに向かい、同じ設計、アルゴリズム、コード、
テストについて継続的に共同作業する事。
1人が「ドライバー」としてPC操作や設計の書き下ろし
を行う。
もう1人が「ナビゲーター」としてドライバーの作業を監
視し、戦術的・戦略的な欠陥を見つける。
37
- 38. ワークショップ2 - ペアプロ(2/11)
ペアプログラミングのやり方
朝会にて一日のペアのスケジュールを決めます。チーム
全員が揃う時間帯にのみ、複雑なタスクをペアプロで
集中的に実施するやり方もあります。
ドライバーとナビゲーターは、大体1分間隔で「ハァ」な
どの言葉にならない声でコミュニケーションを取ります。
ドライバーとナビゲーターの役割を定期的に交代します。
ペアプログラミングの効果
ペアプロによる工数の増加は2倍ではなく1.15倍という
統計結果が出ています。
http://blogs.itmedia.co.jp/hiranabe/2012/
01/pair-programming.html から引用
38
- 41. ワークショップ2 - ペアプロ(5/11)
今日はパソコンを持ってきていないので、擬似的
なペアプロとして、ペアでお絵かきをして頂きます。
ペアでうまくコミュニケーションをとりながら絵を完成
させて下さい。
1つ制限事項として、各ペアで同時に使えるペン
は1本のみとします。これにより2人同時には絵
を描けません。
41
- 43. ワークショップ2 - ペアプロ(7/11)
さあ描けましたか?
描いた絵を皆さんで共有してみましょう。
構図は合っていますか?
うまくいった点
うまくいかなかった点
改善点
顧客に価値を提供しているか?
ペアで描いた絵の売りは何か?こだわった点は?
43
- 44. ワークショップ2 - ペアプロ(8/11)
実は、プラクティスとしてペアプロ以外に今、イテ
レーション、ふりかえりも行いました。
アジャイル開発とは、モナリザの絵で例えると、デッ
サン、下書き、色塗りといった全体をなぞって仕上
げるイメージであると言う紹介もあります。
Jeff Patton, ThoughtWorks, Successful
Incremental Releases, P.40 - P.44
http://www.agileproductdesign.com/down
loads/patton_incremental_releases_hando
uts.pdf
44
- 47. ワークショップ2 - ペアプロ(11/11)
ペアプロの目的
コミュニケーション
技術交流
イテレーションの目的
タイムボックス管理
期間固定化による作業見積もり
ふりかえりの目的
PCDAの実践
ナレッジの共有
47
- 48. AGENDA
1. はじめに
2. アジャイル開発とは
3. eXtremeProgrammingとは
4. ワークショップ
5. まとめ
48
- 49. まとめ
マッピングで現状分析する事により、自分達の今
を知り、足りないものを見つけ、理想を設定し、そ
れに向かう目標を立てて、実践してフィードバック
する。
でもその理想形を追い求めるにも個々のプラクティ
スについて知っている必要があります。その為のプ
ラクティスとしてスパイク(実験)を行ったり、イテレー
ション0などで準備を行ったりします。
今日は少しのプラクティスしかできませんでした。
是非皆さんも色々試してみて下さい。
49
- 50. 本日ご参加の皆さんに朗報!
今日少ししかできなかったXPのプラクティスをもっと
体験できる場が来週あります。
わんくま同盟 名古屋勉強会 #26&ドメイン駆動設
計読書会@名古屋合同勉強会
http://www.wankuma.com/seminar/
日時:2013年2月2日(土) 13:00~17:30
場所:名古屋ソフトウェアセンター(最寄り駅:金山)
TDD、ペアプロ、アジャイルモデリング、メタファーと
いったXPプラクティスが体験できます。
50
- 51. 参考文献(赤色はお薦め)
エクストリーム・プログラミング入門 第1版、第2版
978-4894712751, 978-4894716858
エクストリーム・プログラミング実行計画
978-4894713413
エクストリーム・プログラミング適用編
978-4894715554
実践eXtremeプログラミング
978-4901676625
アート・オブ・アジャイル デベロップメント
978-4873113951
51