アジャイル基礎再考
~4つの価値の背景にあるもの~
Photo by improve It (CC)
http://www.flickr.com/photos/improveit/1574042301/
注意事項
• この発表は
特定の団体
特定の企業
を代表したものではありません。
• この発表は私見に基づくものであ
り、
何ら内容を保証しません。
Photo by twicepix (CC)
http://www.flickr.com/photos/twicepix/2002553809/
自己紹介
• 名前:かぬか
• 仕事:SIer勤務(滝の番人)
• 認定スクラムマスター
(本日、手続き処理開始)
• 主な出現場所
– Shibuya.trac
– すくすくスクラム
アジャイル?やってるよ
アジャイル?知ってるよ
Photo by bealluc (CC)
http://www.flickr.com/photos/bealluc/158962685/
ではクイズです
(一問一答で全5問)
クイズは”Yahoo! みんなの検定「アジャイルソフトウェア開発」”よ
り
問1:アジャイル宣言の最大の目的は何?
1. 人間性を尊重した開発の実施すること
2. お客様の満足度を最大にすること
3. 機能する成果を開発の初期から
繰り返し提供すること
Photo by Banafsh* (CC)
http://www.flickr.com/photos/banafsh/2403031961
問2:アジャイル宣言の4つに含まれないの
は?
1. 包括的なドキュメントより
動くシステムで進捗を計る
2. 計画に固執するよりも変化に対応する
3. プロセスやツールよりも個人を重視する
4. 契約を重視してお客様を説得する
Photo by WorldIslandInfo.com (CC)
http:[email protected]/317952268/
問3:アジャイルな開発ではない開発手法
は?
1.
2.
3.
4.
SCRUM
XP
ウォーター・フォール
Crystal Clear
Photo by AHMED... (CC)
http://www.flickr.com/photos/muhammadahmed/3781960761/
問4:アジャイルな開発では難しいものは?
1. 全機能と開発期間を確定して契約すること
2. 開発の終盤での仕様変更をうけること
Photo by Feri Macfričkins (CC)
http://www.flickr.com/photos/macfrickins/3063571076/
問5:アジャイル開発の「アジャイル」の意
味は?
1. 変化に「機敏」に反応する言う意味
2. 「短い期間」で繰り返し開発すると言う意
味
Photo by ZeroOne (CC)
http://www.flickr.com/photos/villes/696080093/
答え合わせは最後に
Photo by Mr Wabu (CC)
http://www.flickr.com/photos/oxborrow/106778045/
アジャイルって?
アジャイルってあれだろ、あれ。
最近流行ってるやつ。
日経とかに特集あったよな、そういえば。
あれってドキュメント書かないで、
いきなりプログラム書いて
ユーザーに使ってもらって不具合あった
ら
直しながらドンドン開発するやつだろ?
違う!
Photo by dariuszka (CC)
http://www.flickr.com/photos/dariuszka/374750916/
調べてみる
Photo by massmatt (CC)
http://www.flickr.com/photos/momentsnotice/4528684851/
Googleじゃなくて
Bingで
検索結果
みんなが大好き、ウィキペディアで
は・・・
『アジャイルソフトウェア開発』
アジャイルソフトウェア開発手法の多くは、反復 (イテレーション) と呼ばれる短い期間単位を採用することで、リ
スクを最小化しようとしている。 1つの反復の期間は、プロジェクトごとに異なるが、1週間から4週間くらいである
ことが多い。
アジャイル開発手法においては、開発対象を多数の小さな機能に分割し、1つの反復 (イテレーション) で1機能を開
発する(⇒反復型開発)。 この反復のサイクルを継続して行い、1つずつ機能を追加開発してゆくのである。 おのお
のの反復は、小規模なソフトウェア開発プロジェクトに似ている。 各反復では、それまでに開発した成果物に1つの
小さな機能を追加する。 計画、要求分析、設計、実装(コーディング)、テスト、文書化といった、ソフトウェアプロ
ジェクトに要する全ての工程を、1つの反復内で行う。 場合によっては、1つの反復内で開発すると計画していたソ
フトウェア機能を、必ずしも期間内で充分に実現できるとは限らない。 このように時にはうまくゆかない反復もあ
るが、アジャイル開発手法では、各反復が終了するごとに、機能追加された新しいソフトウェア (ビルド) をリリース
することを目指す。 各反復が終了するごとに、プロジェクトチームは、プロジェクトにおける優先度を評価し直す。
アジャイル開発では、たくさんの文書を書くことよりも、プロジェクト関係者間で必要な時に即座に直接顔を合わ
せて意思疎通を行うべきであることを強調する。 ほとんどのアジャイル開発チームでは、ソフトウェア開発に必要
な関係者全員が、1か所の作業場所で仕事をする。 この場合の関係者には、少なくともプログラマと「顧客」が含ま
れる (ここでの顧客とは開発対象のソフトウェアが何であるかを定義する人々である。「顧客」は、時にはプロジェ
クト管理者であったり、ビジネスアナリストや本物の顧客である場合もある) 。 この作業場所では、テスト担当者、
ユーザインタフェース設計者、テクニカルライタ、管理職も一緒に作業する場合がある。
またアジャイル開発手法では、実際に動くソフトウェアこそが最重要なプロジェクト進行尺度であることを、強調
する。 この実際に動くソフトウェアという進行尺度の採用と、直接顔を合わせた意思疎通の重視とがあいまって、
アジャイル開発手法で作成する文書の量は、他の開発手法と比較すると、非常に少ない。 この少ない文書化につい
ては、無統制で雑な作業 (ハッキング、カウボーイコーディング) であるとして、アジャイル開発に対する批判材料の
一つとなっている (後述する) 。
~ウィキペディア『アジャイルソフトウェア開発』の概要から引用~
Photo by Pim Fijneman (CC)
http://www.flickr.com/photos/fijneman/2971210465/
長い!
Photo by lynac (CC)
http://www.flickr.com/photos/lynac/321100379/
シンプルに
• アジャイルマニフェストを基にした開発
• 基本理念
個人との対話 >
プロセスやツール
動くソフトウェア >
包括的なドキュメン
ト
顧客との協調
変化への対応
> 契約・交渉
> 計画に従うこと(遵守)
左を重視すると言う意味であって、
.
右を無視するという意味ではありません!
Photo by karthik c (CC)
http://www.flickr.com/photos/karthikc/333796551/
基本理念を支える
重要のなものがある!
Photo by Joe Shlabotnik (CC)
http://www.flickr.com/photos/joeshlabotnik/3461132240/
理念の背景
• 基本原則
– 顧客満足を最優先し、価値のあるソフトウェア
を
早く継続的に提供します。
– 要求の変更はたとえ開発の後期であっても歓迎
します。変化を味方につけることによって、お
客様の競争力を引き上げます。
– 動くソフトウェアを、2-3週間から2-3ヶ月とい
う
できるだけ短い時間間隔でリリースします。
– ビジネス側の人と開発者は、プロジェクトを通
理念の背景(つづき)
• 基本原則(つづき)
– 意欲に満ちた人々を集めてプロジェクトを構成
します。
環境と支援を与え仕事が無事終わるまで彼らを
信頼します。
– 情報を伝えるもっとも効率的で効果的な方法は
フェイス・トゥ・フェイスで話をすることです。
– 動くソフトウェアこそが進捗の最も重要な尺度
です。
– アジャイル・プロセスは持続可能な開発を促進
します。
理念の背景(つづき)
• 基本原則(つづき)
– 技術的卓越性と優れた設計に対する
不断の注意が機敏さを高めます。
– シンプルさ(ムダなく作れる量を最大限にす
ること)が本質です。
– 最良のアーキテクチャ・要求・設計は、
自己組織的なチームから生み出されます。
– チームがもっと効率を高めることができるか
を
定期的に振り返り、それに基づいて自分たち
の
重要なこと
Photo by Valerie Everett (CC)
http://www.flickr.com/photos/valeriebb/290711738/
• 基本理念
個人との対話 >
プロセスやツール
動くソフトウェア >
包括的なドキュメン
ト
顧客との協調
変化への対応
> 契約・交渉
> 計画に従うこと(遵守)
左を重視すると言う意味であって、
.
右を無視するという意味ではありません!
Photo by karthik c (CC)
http://www.flickr.com/photos/karthikc/333796551/
主なアジャイルな手法
• エクストリーム・プログラミング(XP)
• SCRUM
• Crystal Clear
等々
Photo by charmainezoe (CC)
http://www.flickr.com/photos/charmainezoe/1592343742/
エクストリーム・プログラミン
グ(XP)
• 4つの価値
–
–
–
–
コミュニケーション
シンプルさ
フィードバック
勇気
• 4種のプラクティス
– 共同のプラクティス
• 反復 、共通の用語、開けた空間、レトロスペクティブ(ふりかえり)
– 開発のプラクティス
• テスト駆動開発、ペアプロ、リファクタリング、ソースの共同所有、
継続した結合(CI)、YAGNI(今必要なことだけ行う )
– 管理者のプラクティス
• 責任の受入 、援護 、四半期毎の見直し 、ミラー 、持続可能なペー
ス
– 顧客のプラクティス
• ストーリーの作成 、リリースの計画、受入テスト、短期リリース
Photo by takano32
http://www.flickr.com/photos/b1ue5ky/3622723514/
スクラム(SCRUM)
• 名前の通りラグビーのスクラムから命名
• 初出は日本人の野中郁次郎氏のハーバー
ドビジネスレビューに掲載された「The
New New Product Game」という論文か
ら
• 欧米では現在アジャイルといえばSCRUM
Photo by royskeane (CC)
http://www.flickr.com/photos/royskeane/413103429/
これらのプロセスも
12の基本原則の上に
成り立っている
Photo by Hamed Saber (CC)
http://www.flickr.com/photos/hamed/277221852/
今を考える
顧客にとっての価値を最重要視してます
か?
自律、協調して作業できてますか?
いきいきしてますか?
なぜアジャイルなのですか?
Photo by Okinawa Soba (CC)
http:[email protected]/2432404767/
クイズの答え
問1:アジャイル宣言の最大の目的は何?
1.
2.
3.
人間性を尊重した開発の実施すること
お客様の満足度を最大にすること
機能する成果を開発の初期から繰り返し提供すること
問2:アジャイル宣言の4つに含まれないのは?
1.
2.
3.
4.
包括的なドキュメントより動くシステムで進捗を計る
計画に固執するよりも変化に対応する
プロセスやツールよりも個人を重視する
契約を重視してお客様を説得
問3:アジャイルな開発ではない開発手法は?
1.
2.
3.
4.
SCRUM
XP
ウォーター・フォール
Crystal Clear
問4:アジャイルな開発では難しいものは?
1.
2.
全機能と開発期間を確定して契約すること
開発の終盤での仕様変更をうけること
問5:アジャイル開発の「アジャイル」の意味は?
1.
2.
変化に「機敏」に反応する言う意味
「短い期間」で繰り返し開発すると言う意味
答1:
(2)お客様の満足度を最大にすること
アジャイル宣言を実践するための原則に、「お客様の満足度を
最大にする」ことを目的にして、機能する成果を開発の初期か
ら繰り返し提供することを規定している
答2:
(4)契約を重視してお客様を説得
アジャイルは契約よりも、お客様との協調を重視する
答3:
(3)ウォーター・フォール
答4:
(1)全機能と開発期間を確定して契約すること
お客様の変更を柔軟に受けるためには、
最初の実装機能と実装期間に縛られるのは難しい
答5:
(1)変化に「機敏」に反応する言う意味
アジャイルには「機敏な」「俊敏な」という意味がある。
Photo by Mr Wabu (CC)
http://www.flickr.com/photos/oxborrow/106778045/
“アジャイル知ってるよ”
という人へ
これについては、どう思います
か?
Photo by bealluc (CC)
http://www.flickr.com/photos/bealluc/158962685/
ケント・ベック氏が語る
新アジャイルマニフェ
スト
Kent Beck talks beyond agile programming http://ja.justin.tv/startuplessonslearned/b/262656520
チームのビジョンと規律 >
個人との対話(やプロ
セスやツール)
Team vision and discipline over individuals and interactions (or processes and tools)
有効で妥当な学習 >
動くソフトウェア(や包括的なド
キュメント)
Validated learning over working software (or comprehensive documentation)
顧客の開拓 >
顧客との協調(や契約・交渉)
Customer discovery over customer collaboration (or contract negotiation)
変化の提案 >
変化への対応(や計画に従うこと)
Photo by Improve It (CC)
Initiating change over responding to change (or following
a plan)
http://www.flickr.com/photos/improveit/1573970455/
この資料は
http://d.hatena.ne.jp/kanu-orz/
からppt形式でダウンロードできます。
ライセンスに従って
ご自由に加工してご利用下さい。
ダウンロード

(MS Agile Day 3 LT資料 PPT版) ダウンロード