アジャイル基礎再考

2,612 views

Published on

MS Agile Day 3 LT発表資料

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,612
On SlideShare
0
From Embeds
0
Number of Embeds
263
Actions
Shares
0
Downloads
31
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

アジャイル基礎再考

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

×