Agile in a nutshell
ざっくりわかるアジャイル開発

Jonathan Rasmusson
Japanese Translation: Kakutani Shintaro (2010-10-21)
Original Slides: http://agilewarrior.wordpress.com/presentations/

http://agilewarrior.wordpress.com/© Copyright 2009, Rasmusson Software ConsultingAdaptive plans

rgnig
Chan

Iterative dstnemequireevelo

The Waterfall Horror
Feature Show
気をつけろ
アジャイルなデリバリーが- あなたのすぐそばに迫っている © Copyright 2009, Rasmusson Software Consultingpmentお話する内容• みんなアジャイルな計画づくりを知ってる• アジャイル開発のために必要なこと• アジャイル開発にまつわる迷信を解く• 代表的なアジャイル開発手法の概要• アジャイルになるための3ステップ© Copyright 2009, Rasmusson Software Consultingだいたいわかるアジャイルな計画づくり© Copyright 2009, Rasmusson Software Consultingなすべきことは多く、時間は足りない

Credit:http://www.flickr.com/photos/geneoh/© Copyright2009, Rasmusson Software Consultingリストをつくる
デートのToDo

よし、デートの準備でやらないといけないことはこれで全部かな?

家の掃除
皿洗い
ワイン買う
掃除機
ポエム書く
身だしなみ
洗車
花を買う
アイロン
運動

気が済むまでやってよし© Copyright 2009, Rasmusson Software Consulting大きさを測る
2時間以上かかるものはなさそうだぞ!
デートのToDo
1 hr

家の掃除

½ hr

皿洗い

2 hr
½ hr

ワイン買う
掃除機

½ hr

ポエム書く

1 hr

身だしなみ

1 hr
½ hr

洗車
花を買う

½ hrアイロン½ hr

運動~ 8 hrs© Copyright 2009, Rasmusson Software Consulting優先順位をつける

いちばん大事ちぇっ! ぜんぶやってたら間に合わなさそうだぞ
デートのToDo
1 hr

家の掃除

½ hr

皿洗い

2 hr ワイン買う½ hr 掃除機½ hr ポエム書く
1 hr
1 hr

身だしなみ

½ hr

洗車
花を買う

½ hr
½ hr

アイロン
運動

大事じゃない

テキスト

対象範囲外

© Copyright 2009, Rasmusson Software Consulting実行にうつす
ほんとは運動とかしたくないし、アイロンも何がなんでもじゃないしね
デートのToDo 1 hr 家の掃除
 ½ hr 皿洗い 2 hr ワイン買う ½ hr 掃除機
 ½ hr ポエム書く 1 hr 身だしなみ 1 hr 洗車 ½ hr 花を買う


½ hr アイロン½ hr 運動

だいたいみんながいつもやってるのと同じだったり© Copyright 2009, Rasmusson Software Consultingちょっとした秘密
いいか

アジャイル開発も同じことやってんだぜ……

© Copyright 2009, Rasmusson Software Consultingこっちじゃなくてコジャレた名前でね

ToDo リスト

マスターストーリー
リスト

タスク

ユーザーストーリー=>

当てずっぽう見積り© Copyright 2009, Rasmusson Software Consultingこれをどうやって計画に?

いちばん大事

1週間

納期とか予算とか計画書とかここまでで ½ 完了

ユーザーの追加
旅程の印刷
宿の予約
旅行のキャンセル
許可証の予約
許可証の更新検索
新規デバイスの追加
オプションの追加
予定のキャンセル
クルマの予約
ホテルの更新プロフィール更新
管理画面の追加











Facebook対応

MySpaceの削除
 Twitterの更新
大事じゃない





1週間

1週間

1週間

© Copyright 2009, Rasmusson Software Consulting

予算切れ
時間切れ
やることなしお話する内容• みんなアジャイルな計画づくりを知ってる• アジャイル開発のために必要なこと• アジャイル開発にまつわる迷信を解く• 代表的なアジャイル開発手法の特徴• アジャイルになるための3ステップ© Copyright 2009, Rasmusson Software Consultingスコープを柔軟に納期

予算

品質

スコープ
Flex here© Copyright 2009, Rasmusson Software Consulting

同じ“doneの定義”を使う
落ち葉を集め終えたと言えるのはいつ?
計画?
設計?
報告書?
うちじゃそうじゃない!
© Copyright 2009, Rasmusson Software Consulting

動作するソフトウェアこそがうまくいってることを一番よく表す
どれだけ綺麗で洗練されていたとしても…
プロジェクト計画書
テスト計画書
要求定義書
アーキテクチャダイアグラム
分析モデル
セキュリティ報告開発計画書…顧客には何ひとつ価値を届けていない© Copyright 2009, Rasmusson Software Consultingつまり・・

ユーザの追加
旅程の表示
宿を予約する
...






分析
テスティング100% 完了
設計
コーディング
その他もろもろ

1週間© Copyright 2009, Rasmusson Software Consultingひとつのチームとして働く

VSBA© Copyright 2009, Rasmusson Software Consulting

Dev

QA

October
もっと役割のあいだに重なりを
14, 2010

チームとして責任を果たす© Copyright 2009, Rasmusson Software Consulting分析、設計、テスト、コーディングはどれも継続的な営み
アジャイル
ウォーターフォール
Analysis
Test

VS

Analysis

DesignCodeTest

Code
Design

工程で分断 / 最後の最後に / まとめて全部© Copyright 2009, Rasmusson Software Consulting聞いたことがあるかも© Copyright 2009, Rasmusson Software Consulting

Iterative







1wk

1wk

1wk

© Copyright 2009, Rasmusson Software Consulting

Iterative© Copyright 2009, Rasmusson Software Consultingタイムボックスで届ける

Credit Yogi: http://www.flickr.com/photos/yogi/1147960/© Copyright 2009, Rasmusson Software Consulting適応する計画づくり
当初の計画

リード開発者の離職顧客がこの機能は実は不要だと気づく『スタートレック』の新作封切

原油価格が30%下落

変更が困難と判明!

現実© Copyright 2009, Rasmusson Software Consultingアジャイルチームの特徴

x

ゴール

権限が与えられている
自己組織化
自律している
適応する
フラットな階層

ゴールに到達できるだけの力を備えた人たち© Copyright 2009, Rasmusson Software Consultingアジャイル開発にまつわる迷信

アジャイル開発とは何でないか© Copyright 2009, Rasmusson Software Consultingアジャイル開発は銀の弾丸• ものすごい失敗をしでかせます• あらゆる問題はただそのまま残るだけ– アジャイル開発だと問題がすぐにわかってしまうというだけの話© Copyright 2009, Rasmusson Software Consultingアジャイルチームはドキュメントを書かない• 正確には、アジャイルチームは不必要なドキュメントは書かない• アジャイルチームは文書よりも対面のコミュニケーションを好む• ドキュメントを特別視しない– 優先順位をつけ、見積もり、納品する© Copyright 2009, Rasmusson Software Consultingアジャイル開発は計画しない• アジャイルチームはどんどん計画する– 四半期ごと(リリース計画)– 隔週(イテレーション計画)– 毎日(スタンドアップミーティング)• 使うツールは違う– バーンダウンチャート 対 ガントチャート,PERT図• 目に見えやすい計画づくり– 問題があれば早い段階でステークホルダにもわかる© Copyright 2009, Rasmusson Software Consultingアジャイル開発はアーキテクチャを否定する
アジャイル開発はやりすぎるアーキテクチャに懐疑的なだけ
こんな設計に時間を費してはだめだ...

... 求められてるのがこうならね© Copyright 2009, Rasmusson Software Consultingアジャイル開発はスケールしない• 他の手法と同じぐらいはスケールするよ– あえて言うまでも無いかも• スケールアップするかじゃなくて、– どうやったらスケールダウンできるかを考えるんだ© Copyright 2009, Rasmusson Software Consultingアジャイルチームはモデリングをしない• アジャイルチームもモデリングするよ– 過信しないだけ• モデルはなるべく早く動作するソフトウェアにするのが良い© Copyright 2009, Rasmusson Software Consultingアジャイル開発には規律がない• 簡単な習慣しか採用しなかった人々のせいでアジャイル開発の評判が悪い– 難しい習慣はやってないじゃん• アジャイル開発はとても規律が厳しい– テストを書かねばならない– 設計しなければならない– 書いたコードはどんどん結合せねばならない– どんどん動作するソフトウェアをリリースせねばならない– イテレーションごとに何かしら価値を届けねばならない• チームがアジャイルになればなるほど、規律ただしくなっていく© Copyright 2009, Rasmusson Software Consultingアジャイル開発は予測がつかない• アジャイル開発はソフトウェアが本来備えている複雑性と不確実性を認めている• アジャイル開発では予測していたものに実測データをすぐに反映させていく• 当初の計画と現実とのギャップにいつまでも悩まない• 物事は変化するということを受け入れているので、よりよい情報が得られたら少しずつ計画を見直し続ける
どうしても予測可能であって欲しいというのなら、選ぶ職業を間違えたと言わざるをえない
Credit: ©http://www.flickr.com/photos/shadphotos/
Copyright 2009, Rasmusson Software Consultingアジャル開発には才能が必要
スキルを備えた人たち∝
プロジェクトの成功

価値をうみだす斬新なソフトウェアにはスキルを備えた人たちが必要© Copyright 2009, Rasmusson Software Consultingお話する内容• みんなアジャイルな計画づくりを知ってる• アジャイル開発のために必要なこと• アジャイル開発にまつわる迷信を解く• 代表的なアジャイル開発手法の特徴• 開発をアジャイルにするための3ステップ© Copyright 2009, Rasmusson Software Consultingアジャイル開発には色んなフレーバーが

Scrum

Crystal

Lean

DSDM

FDD

Extreme Programming (XP)© Copyright 2009, Rasmusson Software Consulting

Lean

プリウス

トヨタ式の極めて無駄のない製造工程ひとつください

ムダどり© Copyright 2009, Rasmusson Software Consulting

+Leanpluses-minuses• とても良いハイレベ• ITに限った話ではない

ルなコンセプトとプ• 実践するのが難しい

ラクティス群• 全体最適によってシステムと組織を改善する
Leanから得るものは数多い - 学ぶだけの価値がある© Copyright 2009, Rasmusson Software ConsultingScrum• プロジェクトマネジャのための包装紙。テクノロジやビジネスとは直交する• ITプロジェクト以外でも使えるかも© Copyright 2009, Rasmusson Software Consulting

+pluses

Scrum-minuses• わかりやすい• エンジニアリングを• はじめやすいスルーしている• 選びやすい• 実践が難しい部分を• マネージャに話が通じる飛ばしてやりやすいところだけになって• 怖くない• 今やいちばん有名いる

はじめやすい - いちばん怖くないかも© Copyright 2009, Rasmusson Software ConsultingExtreme Programming (XP)• アジャイル開発に必要とされるエンジニア
リングのプラクティスを広めた• 強調しているのは:– テスティングの前倒し– 自動化– 創発的設計– 継続的インテグレーション© Copyright 2009, Rasmusson Software ConsultingExtreme Programming+pluses• しっかりとしたソフトウェアエンジニアリング-minuses• 開発者にフォーカスしすぎ• 他と協調していきづ• 開発者たちに根強い人気

らい• 熱狂的な信奉者の印• 最初に広まったア

象が強い

ジャイル手法
本質的なエンジニアリングの習慣づけ© Copyright 2009, Rasmusson Software Consulting

選択肢XP

徹底する

Scrum

Scrum+XP+XP+

engineering practices

engineering practices* engineering practices- unit testing, refactoring
Copyright 2009, RasmussonDesign
Software Consulting- continuous integration, ©Test-Driven(TDD)

Leanspirit

おすすめ
はじめはここXP* engineering practices

言葉づかいをえらぶ

Scrum

学ぶorXP

Lean© Copyright 2009, Rasmusson Software Consultingやり方はひとつじゃない
Extreme Programming (XP)

Scrum

Crystal

DSDM

Lean
FDD

自分たちに合うことをやろうう!
独自につくろ© Copyright 2009, Rasmusson Software Consulting

開発をアジャイルにするための3ステップ© Copyright 2009, Rasmusson Software Consulting価値あるものを毎週とどける$ Value!
1 週目
いちばん重要

2 週目
時間© Copyright 2009, Rasmusson Software Consulting

3 週目
さほど重要でない4つのプラクティスからら!

今日か• アジャイル開発を支えるのは「技術的卓越」• 必須のプラクティスはこれ：ユニットテスト

テスト駆動開発

継続的リファクタリング インテグレーション• これらをきちんとやれたら– 他の事もどんどんやりやすくなっていく© Copyright 2009, Rasmusson Software Consulting3つのシンプルな真実を認める
1. プロジェクトの開始時点にすべての要求を集めることはできない
2. 集めた要求は必ずといっていいほど変わる
3. 要求はいつだって、与えられた時間と資金よりも多い© Copyright 2009, Rasmusson Software Consultingさいごに© Copyright 2009, Rasmusson Software Consulting

さいごに• 魔法なんてない - みんなアジャイルに考えてる• 変化するものだと思おう• やり方はひとつじゃない© Copyright 2009, Rasmusson Software Consultingいつの日か誰もがアジャイルなやり方になると思う?

© Copyright 2009, Rasmusson Software ConsultingNo
みんながみんな、食べすぎをやめて運動するようにはならないのと理由は同じ© Copyright 2009, Rasmusson Software Consultingアジャイル開発はしんどい
アジャイル開発は大変な仕事
アジャイル開発には規律が求められる
誰しもがこんなことをしたいわけじゃない!

© Copyright 2009, Rasmusson Software Consultingでもこれは仕事のやり方としては道理にかなってる

It isa lot of funうまくいくよ ― それもかなり© Copyright 2009, Rasmusson Software Consultingつづきは
http://agilewarrior.wordpress.com/

jonathan@agilewarrior.com© Copyright 2009, Rasmusson Software Consulting