さまざまなアジャイル・プロセスとその適用

XP&Agile2002
2002.09.09
さまざまなアジャイル開発プ
ロセスとその適用
山田正樹/メタボリックス
[email protected]
2002.09.09
agile
• [アジャイル]または[アジル]
1. (動きが)機敏な, はしっこい
2. 頭の回転の速い, 機敏な, 明敏な
–
•
例えば...
2002.09.09
©Metabolics, Ltd.
研究社新英和中辞典より
©Metabolics, Ltd.
2
1
XP&Agile2002
2002.09.09
agile
• アジル・コンペティション—「速い経
営」が企業を変える
– スティーブン・L. ゴールドマン (著), その
他 (1996/04/01) 日本経済新聞社
• アジル生産システム—速い経営・速い
生産
– 野口 恒 (著) (1997/03/01) 生産性出版
2002.09.09
©Metabolics, Ltd.
3
アジャイル開発プロセス
•
•
•
•
•
•
キャッチフレーズ಍に‫ؘ‬えば...
「よいものを手早く無駄なく作る」
「お客さん、喜ぶ。開発者、満঱」
本当にそんなことが可能だろうか?
具体的にはどんな方法がある?
実際に取り入れるには?
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
4
2
XP&Agile2002
2002.09.09
さまざまなアジャイル開発プ
ロセス
•
•
•
•
•
•
•
•
エクストリーム¢プログラミング (XP)
スクラム (Scrum)
フィーチャ駆動型開発 (FDD)
クリスタル (Crystal)
適応的ソフトウェア開発 (ASD)
リーン¢ソフトウェア開発 (LSD)
エクストリーム¢モデリング (XM)
......
2002.09.09
©Metabolics, Ltd.
5
エクストリーム¢プログラミン
グ
• ... ケント¢ベック氏に任せる
• ... 本もいっぱいある
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
6
3
XP&Agile2002
2002.09.09
エクストリーム¢プログラミン
グ
• 4つの価値
• 12のプラクティス
• エンジニアリングにフォーカスした強
い方法論
2002.09.09
©Metabolics, Ltd.
7
4つの価値
•
•
•
•
コミュニケーション
単純さ
フィードバック
勇気
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
8
4
XP&Agile2002
2002.09.09
12のプラクティス
• ‫ב‬画ゲーム
• いつも二人で
• すぐリリース
• みんなで共有
• メタファ
• 単純さ優先
• いつも統合
• 週40時間労働
• まずテスト
• リファクタリング
• ‫ش‬客も一緒
• コーディングӪ準
2002.09.09
©Metabolics, Ltd.
9
プラクティスを支える多くの
アイデア
• プロジェクト速度
• ストーリー¢カード
• 自動統合スクリプト
• 構成管理
• タスク¢カード
• コーチ
• スパイキング
• スタンドアップ¢ミー
ティング
• インソーシング
• xUnit
• ファシリティ
2002.09.09
©Metabolics, Ltd.
• CRCカード
• .......
©Metabolics, Ltd.
10
5
XP&Agile2002
2002.09.09
エクストリーム¢プログラミン
グ
• どんなプロジェクトに向いているか?
– テクノロジにフォーカスした、
– 要求や技術の変化の激しい、
– 少人数のチーム。
– システムӪ模の大小は問わない
– メンタや経験者の参加を強く勧める
– 全員のトレーニング参加を強く勧める
2002.09.09
©Metabolics, Ltd.
11
エクストリーム¢プログラミン
グ
• 利点
– よく知られているので導入しやすいかも
– 参考になる資料や組織も多い
• 日本XPユーザ¢グループ(XPJUG)
• http://xp.medinfo.m.ehime-u.ac.jp/
– うまくいけばఫ常に効果/効率は‫ژ‬い
– 双方にとってリスクを低減できる
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
12
6
XP&Agile2002
2002.09.09
エクストリーム¢プログラミン
グ
• 欠点
– 気を抜くと総崩れ
– 癖があるので感情的な抵抗があるかも
2002.09.09
©Metabolics, Ltd.
13
エクストリーム¢プログラミン
グ
• 何を期待できるか?
– ‫ژ‬い品‫ޑ‬
– 低い開発コスト
– 短い開発期間
– 要求や技術の変化への対応
– 人を育てる
– 組織に活気をもたらす
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
14
7
XP&Agile2002
2002.09.09
2002.09.09
©Metabolics, Ltd.
15
スクラム
• Ken Schwaber
– http://www.controlchaos.com/
• Jeff Sutherland
– http://jeffsutherland.org/scrum/
• “Agile Software Development w/ Scrum”
– ഀ訳もまもなく出版予定
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
16
8
XP&Agile2002
2002.09.09
スクラム
• 5つの価値
• 5つのプラクティス
• マネージメントにフォーカスした強い
方法論
2002.09.09
©Metabolics, Ltd.
17
5つの価値
•
•
•
•
•
コミットすること
集中すること
オープンであること
敬意を払うこと
勇気を出すこと
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
18
9
XP&Agile2002
2002.09.09
5つのプラクティス
•
•
•
•
•
スクラム¢マスタ
スプリント
バックログ
スクラム¢ミーティング
スプリント¢レビュー
2002.09.09
©Metabolics, Ltd.
19
スクラム
プロダクト¢バックログ
ビジネス上の要件
スプリントの‫ב‬画
スプリント¢レビュー
デイリー¢スクラム
スプリント¢バックログ
2002.09.09
©Metabolics, Ltd.
スプリント(30日間)
©Metabolics, Ltd.
20
10
XP&Agile2002
2002.09.09
スクラム¢チーム
• 一つのスクラム¢チームは5~9人
• 各スクラム¢チームにスクラム¢マスタ
がいる
• 一つのプロジェクトが複数のスクラム¢
チームから構成されていてもよい
– その場合にはスクラム¢マスタのスクラム¢
マスタを置く
2002.09.09
©Metabolics, Ltd.
21
プロダクト¢オーナ
• 一つのプロダクトに対して一人のプロ
ダクト¢オーナがいる
– ‫ش‬客、ユーザ代表、マネージメントなど
– プロダクトに関する決定権を持つ
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
22
11
XP&Agile2002
2002.09.09
プロダクト¢バックログ
• プロダクトの開発すべき機能の一覧
– 優先順位が付いている
– 開発中に変わってもよい
– プロダクト¢オーナがすべて制御する
– 関係者全員にオープンにする
– バックログ = 仕掛品
2002.09.09
©Metabolics, Ltd.
23
スプリント
• (暦上の)30日間のイテレーション
• すべての責任と権限はチームにある
– 勝つためなら何をやってもいい
• 何をするべきかはチーム外の਑も指示
できない
– 逆に‫ؘ‬えば਑も指示してくれない
• チームは創発的に自己組織化する
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
24
12
XP&Agile2002
2002.09.09
スプリント¢バックログ
• スプリントですべきことは最初にスプ
リント¢バックログに記述する
• スプリントの目的はスプリント¢バック
ログを消化すること
• スプリント中はチーム¢メンバ以外には
変えられない
• プロダクト¢バックログの優先順位の‫ژ‬
いものから
2002.09.09
©Metabolics, Ltd.
25
スクラム¢マスタ
• チームを引っ張る
• デイリ¢スクラムを主催する
• メンバのあらゆる問題点をあらゆる手
を使ってЖ決する
• メンバをチーム外の圧力/障害から守る
• ఫ常に重要な役割
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
26
13
XP&Agile2002
2002.09.09
デイリ¢スクラム
•
•
•
•
•
•
毎日決まった時間に決まった場所で
全員参加、਻刻厳禁、‫ܚ‬ਮ禁止
メンバ以外はいっさいの干渉禁止
テレコンファレンスでもよい
だいたい15分程度
問題Ж決のミーティングは別途開催
2002.09.09
©Metabolics, Ltd.
27
デイリ¢スクラム
• スクラム¢マスタがメンバ一人一人に順
に次の‫ޑ‬問をする
– あなたは昨日何をしましたか?
– あなたは今日何をしますか?
– あなたが今抱えている問題は何ですか?
• これだけ
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
28
14
XP&Agile2002
2002.09.09
スプリント
• スプリント期間中、
• メンバはバックログを一つずつ消し、
• スクラム¢マスタはみんなの問題をЖ決
し、
– これがスクラム¢マスタの信頼の素
• 他の関係者はじっと黙って30日目を待
つ。
2002.09.09
©Metabolics, Ltd.
29
スプリント¢レビュー
• 30日目にその成果をお披๴目する
• 必ず動作するソフトウェアが必要
– デモンストレーション
• 関係者全員が参加
• このレビューを元に次のスプリントの
‫ב‬画を立てる
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
30
15
XP&Agile2002
2002.09.09
スクラム
• 全体としてスプリントを数回~10回程度
繰りೊす
• もし無理ならば、チームはスプリント
をキャンセルしてやり直すことが可能
• ‫ش‬客は30日分のリスクを負う
2002.09.09
©Metabolics, Ltd.
31
スクラム
• どんなプロジェクトに向いているか?
– 要求や技術の変化が激しいプロダクト。
– チームӪ模やシステムӪ模の大小はあまり
関係ない
– メンタリティの強いスクラム¢マスタが必
要
– あまりに‫ش‬客や組織が強いと難しいかも
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
32
16
XP&Agile2002
2002.09.09
スクラム
• 利点
– 多様なプロジェクトで採用可能
• Ӫ模、分野、技術などにあまり依存しない
– 比ѕ的導入しやすい
– 双方にとって比ѕ的リスクが低い
2002.09.09
©Metabolics, Ltd.
33
スクラム
• 欠点
– スクラム¢マスタがチーム外からの圧力に
屈すると影՝が大きい
– 人間的要素が大きい
• マニュアル通りやればスクラムになるとは限ら
ない
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
34
17
XP&Agile2002
2002.09.09
スクラム
• 何を期待できるか?
– 要求や技術の変化への対応
– スケジュールの制御
– 人を育てる
– 組織を変化させるきっかけになる
• ピラミッド型から自律分散型へ
2002.09.09
©Metabolics, Ltd.
35
XP+Scrum
• XPとScrumはフォーカスしている側面
が違う
• 両方を組み合わせるとఫ常に強力
• XP@Scrum
– http://www.controlchaos.com/xpScrum.htm
• Xbreed
– http://www.xbreed.net/index.html
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
36
18
XP&Agile2002
2002.09.09
2002.09.09
©Metabolics, Ltd.
37
フィーチャ駆動型開発
• Jeff De Luca
– http://www.nebulon.com/fdd/
• Peter Coad
• “Javaエンタープライズ¢コンポーネン
ト”
• “A Practical Guide to Feature-driven
Development”
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
38
19
XP&Agile2002
2002.09.09
フィーチャ駆動型開発
• 8つのプラクティス
• 5つのプロセス
• テクノロジとマネジメント両面をサポー
トする古典的な繰りೊし型開発の一種
– ただし十分軽量/明確
2002.09.09
©Metabolics, Ltd.
39
8つのプラクティス
•
•
•
•
•
•
•
•
ドメイン¢オブジェクト¢モデリング
フィーチャごとの開発
クラスの個人所有
フィーチャごとのチーム編成
インスペクション
定期的なビルド
構成管理
結果の報告と透明性
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
40
20
XP&Agile2002
2002.09.09
フィーチャ
• ユーザ機能ともいう
– 実現のための機能ではない
– ‫ش‬客に価値をもたらすもの
– できるだけ小さく
• 何をやるか明確で(2週間)
• ‫ב‬測可能な大きさ(オーバーヘッド、精度)
– “オブジェクトXXXのYYYをZZZする”
2002.09.09
©Metabolics, Ltd.
41
フィーチャ
• フィーチャはかなり小さいので...
• 関連したフィーチャをまとめたのが
フィーチャ¢セット
– “オブジェクトXXXをZZZする”
• 中心となるフィーチャ¢セットが主要
フィーチャ¢セット
– “XXXマネージャ”
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
42
21
XP&Agile2002
2002.09.09
ドメイン¢モデル
• 概念モデルと呼ばれることもある
• 問題領域に現れるオブジェクトをモデ
リングしたもの
• 現実の世界に対応しているので実装な
どの変化の影՝を受けにくい
• 他のモデルのベースになる
• ユーザや‫ش‬客に理Жしやすい
2002.09.09
©Metabolics, Ltd.
43
インスペクション
• Michael Fagan (IBM, 1976)
• 単なるレビューではない
• ఫ常に効率が‫ژ‬いので有名
– 生産性向上 30~100%
– 開発期間短縮 10~30%
– テスト¢コスト/期間の短縮 1/5 ~ 1/10
– 保守費用の低減 全体の10%以下に
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
44
22
XP&Agile2002
2002.09.09
インスペクション
•
•
•
•
•
•
参加者は前もって準備する
チェックリスト(1頁以内)に従う
ミーティングは最大2時間
ミーティングでは議論はしない
ログを取る
ちゃんとしたリーダがいる
2002.09.09
©Metabolics, Ltd.
45
インスペクション
• 実はインスペクション自体が一つの方
法論といえるほど強力な手法の一つ
• ただしあまり軽量とは‫ؘ‬えない
• “ソフトウェア¢インスペクション” (T.
Gilb, F. Graham, 1999, 共立出版)
• 役に立たないだらだらレビューから見
れば参考になる点が多い
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
46
23
XP&Agile2002
2002.09.09
構成管理
• バージョン+構成の管理
• 「いつでも元に戻れる」が重要
– 自由と勇気を与えてくれる
• アジャイルであろうがなかろうが必ࣆ
• ツール
– CVS (Concurrent Versioning System)
– Subversion
– ......
2002.09.09
©Metabolics, Ltd.
47
5つのプロセス
1. 全体を表すオブジェクト¢モデルの作
成
2. フィーチャ¢リストの作成
3. フィーチャ開発‫ב‬画の作成
4. フィーチャごとのध‫( ב‬DBF)
5. フィーチャごとの構築 (BBF)
–
2002.09.09
©Metabolics, Ltd.
4, 5は合わせて2週間単位の繰りೊし
©Metabolics, Ltd.
48
24
XP&Agile2002
2002.09.09
5つのプロセス
全体を表すオブジェクト¢モデルの作成
フィーチャ¢リストの作成
フィーチャ開発‫ב‬画の作成
フィーチャごとのध‫ב‬
フィーチャごとの構築
2002.09.09
©Metabolics, Ltd.
49
プロセス¢テンプレート
• ETVX
– Entry 開始条件
– Task 実際の作業
– Verification 作業成果の検証
– eXit 終了条件
• 各プロセスごとにETVXが定義されてい
る
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
50
25
XP&Agile2002
2002.09.09
全体を表すオブジェクト¢モデ
ルの作成
1.
2.
3.
4.
5.
6.
7.
モデリング¢チームの結成
問題領域のウォークスルー
ドキュメントੴ査
小グループによるモデリング
チーム全体でのモデリング
モデルの詳細化
コメントの記述
2002.09.09
©Metabolics, Ltd.
51
フィーチャ¢リストの作成
1. フィーチャ¢リスト作成チームの結成
2. フィーチャ¢リストの作成
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
52
26
XP&Agile2002
2002.09.09
フィーチャ開発‫ב‬画の作成
1. ‫ב‬画作成チームの結成
2. スケジュールの作成
3. フィーチャ¢セットのチーフ¢プログラ
マへの割り当て
4. クラスの開発者への割り当て
2002.09.09
©Metabolics, Ltd.
53
フィーチャごとのध‫ב‬
1.
2.
3.
4.
5.
6.
7.
フィーチャ¢チームの結成
問題領域のウォークスルー
関連ドキュメントのੴ査
シーケンス図作成
オブジェクト¢モデルの詳細化
クラス¢インタフェースの記述
ध‫ב‬インスペクション
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
54
27
XP&Agile2002
2002.09.09
フィーチャごとの構築
1.
2.
3.
4.
クラスの実装
コード¢インスペクション
単体テスト
ビルド
2002.09.09
©Metabolics, Ltd.
55
プロセスごとの時間割当例
プロセス
初期
繰りೊし
全体を表すオブジェクト¢モ
デルの作成
10%
4%
フィーチャ¢リストの作成
4%
1%
フィーチャ開発‫ב‬画の作成
2%
2%
フィーチャごとのध‫ב‬/構築
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
77%
56
28
XP&Agile2002
2002.09.09
進捗グラフの例
フィーチャ¢セットの状況
作業中
਻れ
完了
フィーチャ¢セット名
(フィーチャ数)
完了度
未開始
完了度
完了予定日
2002.09.09
©Metabolics, Ltd.
57
フィーチャ駆動型開発
• どんなプロジェクトに向いているか?
– 中Ӫ模以上のチーム
– モデリングの経験がある
– 古典的なプロセスを体験している
– あまり過激なことはやりたくない
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
58
29
XP&Agile2002
2002.09.09
フィーチャ駆動型開発
• 利点
– 古典的な手法の経験者に受け入れられやす
い
– ツール化しやすい
– モデリングのプロセスとかなり密に結合し
ている
2002.09.09
©Metabolics, Ltd.
59
フィーチャ駆動型開発
• 欠点
– モデリングのプロセスとかなり密に結合し
ている
– まったくプロセスを持たない組織が一度に
導入するのは難しいかもしれない
– 具体的である分、汎用性に欠けるかもしれ
ない
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
60
30
XP&Agile2002
2002.09.09
フィーチャ駆動型開発
• 何を期待できるか?
– 今まで古典的な手法で古典的なプロダクト
を作ってきたソフトウェア組織が、オブジェ
クトを使ってプロダクトを作るときのよい
ガイドラインになり得る
– 組織の性‫ޑ‬上中庸を求められる場合には使
いやすく、ほどほどの成果を得られる
©Metabolics, Ltd.
2002.09.09
©Metabolics, Ltd.
61
2002.09.09
©Metabolics, Ltd.
62
31
XP&Agile2002
2002.09.09
クリスタル
• ...アリスター¢コーバーン氏に聞いてみ
よう
• マネージメントにフォーカスした弱い
方法論
– FDDと同様古典的な繰りೊし型開発の一種
と考えてもよい
– 開発Ӫ模に応じてパラメータ化されている
2002.09.09
©Metabolics, Ltd.
63
クリスタル
• “Agile Software Development”
• “Surviving Object-Oriented Project”
– ഀ訳を会場で売っているはず...
– これらにはあまりクリスタルは出てこない
が...
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
64
32
XP&Agile2002
2002.09.09
2002.09.09
©Metabolics, Ltd.
65
適応的ソフトウェア開発
• Jim Highsmith
– http://www.adaptivesd.com/
• “Adaptice Software Development”
• “Agile Software Development Ecosystems”
– まもなくഀ訳出版予定
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
66
33
XP&Agile2002
2002.09.09
適応的ソフトウェア開発
• 3つのモデル
• 1つの適応的ライフサイクル
• 複‫ܚ‬適応系(CAS)の理論を応用した、エ
ンジニアリングとマネージメントの両
面に渉る大きなフレームワーク
2002.09.09
©Metabolics, Ltd.
67
3つのモデル
• 概念モデル
– 理論的背景
• 開発モデル
– 適応的ライフサイクル
• 管理モデル
– リーダーシップ+協ੴ
• この三つの絡み合いで成立している
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
68
34
XP&Agile2002
2002.09.09
3つのモデル
秩序の創発
ウォーターフォール
ニュートン的世界観
複‫ܚ‬適応系
概念
モデル
開発
モデル
管理
モデル
2002.09.09
©Metabolics, Ltd.
適応的開発
命令と制御
適応的管理
69
概念モデル
• 理論的背景で実ॏ的内容はない
• 複‫ܚ‬適応系(CAS)
– ひとはエージェントなり
– チームはCASなり
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
70
35
XP&Agile2002
2002.09.09
開発モデル
• 適応的開発ライフサイクル
– 推測
– 協ੴ
– 学習
• 古典的な繰りೊし型ライフサイクル(‫ב‬
画 - 構築 - 改訂)とは異なる
2002.09.09
©Metabolics, Ltd.
71
推測
• 複‫ܚ‬な系では‫ב‬画は役に立たない
– 結果が予測不可能なのに‫ב‬画は無意味
– ‫ב‬画からのずれこそが進むべき道を示して
いる
• 推測はミッションとして表す
– howではなくwhatを表す
– 共有されることが重要
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
72
36
XP&Agile2002
2002.09.09
ミッション
• ミッションは以下のドキュメントに表
す
– プロジェクト¢ビジョン(憲章)
• 2~10頁、キーとなる目的/仕様/位置付けなど
– プロジェクト¢データ¢シート
• 1頁、管理上必要事項のまとめ
– プロダクト仕様アウトライン
• 仕様の概要
2002.09.09
©Metabolics, Ltd.
73
適応的ライフサイクル
• 適応的ライフサイクルは
– ミッションによって駆動される
– コンポーネント¢ベースである
– 繰りೊし型である
– 時間で区切られている
– リスクによって駆動される
– 変化に強い
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
74
37
XP&Agile2002
2002.09.09
適応的ライフサイクル
学習のループ
プロジェクト
立ち上げ
推測
2002.09.09
適応的
サイクル
‫ב‬画
並行
並行
コンポーネント
コンポーネント
開発
開発
品‫ޑ‬
レビュー
協ੴ
©Metabolics, Ltd.
最終QA
リリース
学習
75
‫ב‬画の立て方
1. プロジェクトを立ち上げる
2. プロジェクトのタイムボックスを決め
る
3. サイクルの数とそれぞれのタイムボッ
クスを決める
4. サイクルごとの目的を文書化する
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
76
38
XP&Agile2002
2002.09.09
‫ב‬画の立て方
5. 主要なコンポーネントをサイクルに割
り当てる
6. 技術要素と他のコンポーネントをサイ
クルに割り当てる
7. プロジェクト¢タスク¢リストを作る
• サイクルごとにレビューと再‫ב‬画を行
う
2002.09.09
©Metabolics, Ltd.
77
協ੴ
• ਑が何をやるかは自分たちで決める
• 4つの価値
– 互いに信頼し合う
– 互いに尊敬の念を持つ
– 互いに関わり合う
– 一致してコミットメントする
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
78
39
XP&Agile2002
2002.09.09
Joint Application Development
• ユーザ参加型の要求定義プロセス
– IBM, 1984
• “Joint Application Development”(Wood &
Silver, 1995)
• これを協ੴのツールとしてプロジェク
ト内で利用する
2002.09.09
©Metabolics, Ltd.
79
学習
• 推測と協ੴの結果との誤差を学習する
– トレーニングはスキルの獲得だが、学習は
物事に向かう態度である
– 重要なのは何を学んだかではなく、如何に
学んだかである
– 重要なのは正確さではなく、適切さである
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
80
40
XP&Agile2002
2002.09.09
学習のためのツール
• ‫ش‬客中心グループ(CFG)¢レビュー
• ソフトウェア¢インスペクション
• プロジェクト¢ポストモータム
2002.09.09
©Metabolics, Ltd.
81
CFGレビュー
• 開発者と‫ش‬客の参加するセッション
– 成果物をレビューする
– 変更要求を文書化する
– 参加者はそれぞれ役割を担う
– ただし‫ش‬客側の視点から
– 必要ならば‫ش‬客が開発に参加できるように
する
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
82
41
XP&Agile2002
2002.09.09
ソフトウェア¢インスペクショ
ン
• 前述
2002.09.09
©Metabolics, Ltd.
83
プロジェクト¢ポストモータム
• ポストモータム(検死)
– レトロスペクションと呼んでください:-)
• うまくいったのは何か?
• どんな問題がӭきたか?
• もっとよくするためにはどうするとい
いか?
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
84
42
XP&Agile2002
2002.09.09
管理モデル
• リーダーシップと協ੴ
• アカウンタビリティ
• 文化を創る
– 最適化(CMM L5)ではなく適応が重要
2002.09.09
©Metabolics, Ltd.
85
管理モデル
• ワークフローではなくワークステート
で考える
– ワークフローはよく定義され、繰りೊされ
るタスクには向いている
– ソフトウェアではアクティビティ間の依存
関係が明確でない
• 例えばコンポーネントの状態として
– outline/detail/reviewed/approved
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
86
43
XP&Agile2002
2002.09.09
適応的ソフトウェア開発
• どんなプロジェクトに向いているか
– Ӫ模や分野に特に制約はない
– ただしチャレンジングである必要がある
– 技術や要求の変化が激しい
2002.09.09
©Metabolics, Ltd.
87
適応的ソフトウェア開発
• 利点と欠点
– 理論的には整然としている
– フレームワークはかなり大きい
• 影՝も初期投資もかなり大きい可能性がある
• 必ずしも軽量とは‫ؘ‬えない
– 大Ӫ模なプロジェクトでも適用可能性が‫ژ‬
い
– まだよく分かっていない...
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
88
44
XP&Agile2002
2002.09.09
適応的ソフトウェア開発
• 何が期待できるか?
– 要求や技術の変化への対応
– 新しいパラダイムの有効性:-)
– ......
©Metabolics, Ltd.
2002.09.09
©Metabolics, Ltd.
89
2002.09.09
©Metabolics, Ltd.
90
45
XP&Agile2002
2002.09.09
リーン¢ソフトウェア開発
• Mary Poppendiek
– http://www.poppendieck.com/
2002.09.09
©Metabolics, Ltd.
91
リーン¢ソフトウェア開発
• 10のルール
• 13のツール
• 具体的な方法論と‫ؘ‬うよりは、アジャイル開
発プロセスの基本原則や理論的背景を示した
もの
– ベースになっているのは、トヨタ生産方式(カンバ
ン、ムダ取り)など
– リーン生産、TQMの原則をソフトウェアに適用
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
92
46
XP&Agile2002
2002.09.09
10のルール
•
•
•
•
•
ムダをなくせ
在庫は最小に
停滞するな
必要になったら取りに行く
お客様中心
2002.09.09
©Metabolics, Ltd.
93
10のルール
•
•
•
•
•
最初からきちんと
現場に権限を
一カ所だけよくしてもダメ
ੴ達は少しずつ
やり続ける文化を作る
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
94
47
XP&Agile2002
2002.09.09
ムダをなくせ
• ソフトウェア開発におけるムダとは?
– 例えば中間成果物(ドキュメント、図、モ
デルなど)
– これらは本当に最終成果物に価値を付け加
えているか?
– もっと効率よく価値を付加できる方法はな
いか?
2002.09.09
©Metabolics, Ltd.
95
在庫は最小に
• ソフトウェア開発における在庫とは?
– 例えば最終成果物ではないドキュメント
– これらに実際どれだけの工数を掛けている
か?
• 作成、レビュー、変更管理、...
– 最大にすべき開発の流れをॱ害していない
か?
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
96
48
XP&Agile2002
2002.09.09
停滞するな
• ソフトウェア開発における停滞とは?
– Work-in-process(WIP, やりかけの仕事)
– WIPを減らせば全体のサイクル¢タイムを
減らすことができる
– そのためには
• small batch - 仕事の単位を小さく
• smooth flow - 次の仕事につなげる
– いわゆる繰りೊし開発
2002.09.09
©Metabolics, Ltd.
97
必要になったら取りに行く
• ソフトウェア開発における後工程引取
りとは?
– 遠い将来に納品されるシステムの要求を予
測しない
– 要求やध‫ב‬を初期の段階で凍結しない
– 決断はできるだけ後まで引き延ばす
– これによって要求や要求の変更をできるだ
け早く製品に反映できる
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
98
49
XP&Agile2002
2002.09.09
お客様中心
• 品‫ޑ‬とはお客様の満঱度
• 最初にどれほど要求を詳細に決めて、
決定事項としたところで、必ず変化す
る
• その変化への対応も品‫ޑ‬
• 変化を知るには実際に使ってもらうし
かない(短いリリース)
2002.09.09
©Metabolics, Ltd.
99
最初からきちんと
• 「まずやってみてダメだったら直す」
はダメ
– これは「要求を初期に凍結する」のとは別
• 変更はあり得る、きちんと変更できる
ためには
– テストをプロセスに組み込みなさい
– リファクタリングしなさい
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
100
50
XP&Agile2002
2002.09.09
現場に権限を
• 自分たちの問題のЖ決の仕方は自分た
ちで決める
• 紙やプロセスよりも人や協ੴが重要
• 紙で渡される情報は暗黙知を失いやす
い
2002.09.09
©Metabolics, Ltd.
101
一カ所だけよくしてもダメ
• 局所的に生産性を上げても全体の生産
性は上がらない(むしろ落ちる)
• 問題は単純な生産性ではなく、全体の
流れとタイミングが重要
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
102
51
XP&Agile2002
2002.09.09
ੴ達は少しずつ
• evolutionary procurement(acquisition)
– 一度に大量にੴ達するのでなく少しずつ੹
期にわたってੴ達すること
– ムダが生じる
– 変化に対応できない
2002.09.09
©Metabolics, Ltd.
103
やり続ける文化を作る
• CMMやISO9000などドキュメント-プロ
セスのパラダイムは、固定したプロセ
スで間に合う場合には有効
• しかし変化への感受性に欠ける
• Plan - Do - Check - Actionサイクルが重要
• さらにプロジェクトをΡえた改善の継
続が必要
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
104
52
XP&Agile2002
2002.09.09
13のツール
• 分析のためのツール
– バリュー¢ストリーム¢マッピング
– ਻延コスト
– リアル¢オプション
• 制御のためのツール
– 待ち行列理論
– 制御理論
– 複‫ܚ‬性理論
2002.09.09
©Metabolics, Ltd.
105
13のツール
• 組織のためのツール
– プロフェッショナリズム
– 目的
– 契約
• ソフトウェア開発のツール
–
–
–
–
イテレーション
最終決断時点
集合にもとづく開発
テストの役割
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
106
53
XP&Agile2002
2002.09.09
2002.09.09
©Metabolics, Ltd.
107
エクストリーム¢モデリング
• http://www.extrememodeling.org/
• 常に検証可能な形でモデリングを行い、
モデルから直接実行可能な製品を生成
する方法論
– eXecutable UML (旧シュレーヤ¢メラー法)
– OMG MDA(Model Driven Architecture)
– なども含めて考えることができる
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
108
54
XP&Agile2002
2002.09.09
エクストリーム¢モデリング
• 今までのモデリングは反アジャイル
– いくらモデルを書いても最終的にはほとん
ど何ももたらさない(ムダ)
• 一ಊではすでに実用化されている
– BridgePoint (http://www.projtech.com/)
– iUML (http://www.kc.com/)
– など
2002.09.09
©Metabolics, Ltd.
109
エクストリーム¢モデリング
• ツールが必ࣆ
– 現状はఫ常に‫ژ‬価で一般的でない
• UML2の行方が将来を握っている
• ソフトウェア開発に劇的な変化がӭこ
るだろうと思われる
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
110
55
XP&Agile2002
2002.09.09
2002.09.09
©Metabolics, Ltd.
111
アジャイル開発プロセスをど
う適用するか?
• 大きく分けて二つの選択肢がある
– 既存のアジャイル開発プロセスを導入する
– 自分たちのプロセスをベースにアジャイル
化を進める
• いずれにしろ以下のステップを踏む必
要がある
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
112
56
XP&Agile2002
2002.09.09
アジャイル開発プロセス適用
ステップ
1. アジャイル開発プロセス適用のスコー
プを決める
•
プロジェクト単位か、ಊ単位か、組織単
位か
•
最終的には組織がコミットしなければう
まくいかない
•
が、とりあえずの出発点は小さくてもよ
い
2002.09.09
©Metabolics, Ltd.
113
アジャイル開発プロセス適用
ステップ
2. 自分たちのビジネス¢ゴールを明確に
する
•
•
•
•
2002.09.09
©Metabolics, Ltd.
現状では何が問題なのか?
何を目指すのか?
なぜアジャイル開発プロセスが必要なの
か?
できるだけオープンに議論し、できるだ
けビジョンを共有する
©Metabolics, Ltd.
114
57
XP&Agile2002
2002.09.09
アジャイル開発プロセス適用
ステップ
3. イントロスペクションを行う
•
•
何が問題なのか?
その理由は何か?
•
•
変えるためには何が必要か?
よかった点は何か?
•
•
もっとよくするためには何ができるか?
やってみたいことは何か?
2002.09.09
©Metabolics, Ltd.
115
アジャイル開発プロセス適用
ステップ
4. 導入方法を決める
1. 既存のアジャイル開発プロセスを導入す
る
2. 自分たちのプロセスをベースにアジャイ
ル化する
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
116
58
XP&Agile2002
2002.09.09
アジャイル開発プロセス適用
ステップ
5. 導入するプロセスの詳細をੴ査する
•
•
導入コスト
導入によるインパクト
•
•
導入によるリスク
期待される効果
•
•
プロセスの適不適
......
2002.09.09
©Metabolics, Ltd.
117
プロセス¢マトリックス
XP Scrum FDD Crystal ASD
効果 ◎
◎
○
○
?
プロジェク
小
トӪ模
-
-
-
中<
インパクト 大
中
小
小
中<
コスト 中
小
小
小
中?
これはあくまでも例です。自分の状況の中で判断してください
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
118
59
XP&Agile2002
2002.09.09
アジャイル開発プロセス適用
ステップ
6. ઉ加するとよいプラクティスはある
か
•
ほかのアジャイル開発プロセスから
•
•
自分たちのプロセスのいいところ
組織/プロセス¢パターン
2002.09.09
©Metabolics, Ltd.
119
組織/プロセス¢パターン
• Coplien他多数
– http://www.kamenet.com/jplop/Translation/GDP/patternIndex.htm
• “アンチパターン” (1999, ソフトバンク)
• G. ワインバーグ
– ソフトウェア文化を創るシリーズ他
• “The Manager Pool”(2001, AWL)
• 場合によってはCMMだって参考になる
• ......
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
120
60
XP&Agile2002
2002.09.09
アジャイル開発プロセス適用
ステップ
7. トレーニングなどを受ける
•
•
•
できれば全員
XPを除けば国内で定期的に行われている
トレーニングは少ないだろう
•
http://www.tech-arts.co.jp/training/index.html
•
•
日本XPユーザ会など
コンサルタント、メンタなどに依頼
少なくともある程度の勉強を
2002.09.09
©Metabolics, Ltd.
121
アジャイル開発プロセス適用
ステップ
8. 初期プロセスを明確にしてメンバ全員
の同意を得る
•
•
•
•
プロセスを何らかの形で記述しておく
もちろん後で変わっても構わない
੹すぎるのはダメ(1頁が基本)
補助的にSPEMを使ってもいいかも
•
•
2002.09.09
©Metabolics, Ltd.
Software Process Engineering Metamodel
UMLを拡張してプロセスを図示する記法
©Metabolics, Ltd.
122
61
XP&Agile2002
2002.09.09
アジャイル開発プロセス適用
ステップ
9. Go !
2002.09.09
©Metabolics, Ltd.
123
アジャイル開発プロセス適用
ステップ
10. 何らかの客観的な指標を用いて結果を
評価する
–
最初のビジネス¢ゴールの達成を‫ב‬る
–
–
一つでもいい、簡単でもいい
プロセスが備えている指標でも使えれば
OK
–
アジャイルだから測定無しということは
ない!
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
124
62
XP&Agile2002
2002.09.09
2002.09.09
©Metabolics, Ltd.
125
アジャイル¢アライアンス
• http://www.agilealliance.org/home
– アジャイル開発プロセスの提唱者たちを中
心としたコミュニティ
• http://www.agilemanifesto.org/principles.ht
ml
– 最後に彼らの掲げる原則を...
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
126
63
XP&Agile2002
2002.09.09
我々は価値のあるソフトウェアを
できるだけ早い段階から
継続的に引き渡すことによって
お客様の満঱度を‫ژ‬めることを
もっとも優先します
2002.09.09
©Metabolics, Ltd.
127
要件の変更は
例え開発の後期であっても
受け入れます
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
128
64
XP&Agile2002
2002.09.09
アジャイル¢プロセスは
変化を味方につけることによって
お客様の競争力を引き上げます
2002.09.09
©Metabolics, Ltd.
129
動くソフトウェアを
2~3週間から2~3ヶ月という
できるだけ短い時間間隔で
繰りೊし引き渡します
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
130
65
XP&Agile2002
2002.09.09
ビジネスをする人と開発者は
プロジェクトを通して
日々一緒に働かなければなりません
2002.09.09
©Metabolics, Ltd.
131
意欲に満ちた人々を集めて
プロジェクトを構成します。
ですから彼らが必要とする
環境と支援を与え
仕事が無事終わるまで
彼らを信頼してください
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
132
66
XP&Agile2002
2002.09.09
開発チームに対して
あるいは開発チーム内ಊで情報を伝える
もっとも効率的で効果的な方法は
面と向かって話をすることです
2002.09.09
©Metabolics, Ltd.
133
動いているソフトウェアこそが
進捗の最も重要な尺度です
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
134
67
XP&Agile2002
2002.09.09
アジャイル¢プロセスは
持続可能な開発を促進します。
スポンサ、開発者、ユーザは
一定のペースで
永続的に保守
できるようにしなければなりません
2002.09.09
©Metabolics, Ltd.
135
卓Ρした技術と
優れたध‫ב‬に対する不断の注意こそが
機敏さを‫ژ‬めます
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
136
68
XP&Agile2002
2002.09.09
単純さ
- 作業せずに済む量を
最大限に引き上げる技量 が本‫ޑ‬です
2002.09.09
©Metabolics, Ltd.
137
最良の
アーキテクチャ、要件、ध‫ב‬は
自己組織的なチームから
生み出されます
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
138
69
XP&Agile2002
2002.09.09
どうしたら
チームがもっと効率を
‫ژ‬めることができるかを
定期的に振りೊり、
それに基づいて自分たちのやり方を
最適にੴ整します
2002.09.09
©Metabolics, Ltd.
©Metabolics, Ltd.
139
70