【デブサミ2010】アジリティを向上させる開発ツールの進化

4,619
-1

Published on

デブサミ2010の講演資料です。

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,619
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

【デブサミ2010】アジリティを向上させる開発ツールの進化

  1. 1. 18-D-2<br />長沢 智治<br />マイクロソフト株式会社<br />エバンジェリスト<br />アジリティを向上させる開発ツールの進化Visual Studio 2010 の場合。<br />
  2. 2. Please Save the Date<br />カジュアル イベントです。<br />気軽に参加し、気づきと交流を!<br />2010.03.19 FridayAgileDay2 開催決定!<br />主催: マイクロソフト株式会社<br />場所:東京・新宿 マイクロソフト新宿オフィス<br />参加費: 無償 ※事前登録制<br />1月22日 第1回の模様<br />詳細は、以下でお知らせ!<br />http://www.microsoft.com/japan/powerpro/developer/agile/<br />
  3. 3. 自己紹介<br />「開発する側」<br />   から<br /> 「開発を支援する側」<br />  へ、まわって…<br />10年<br />長沢 智治(TomoharuNagasawa)<br />マイクロソフトのエバンジェリスト<br />以前: プリンシパル コンサルタント、ソリューション アーキテクトなど<br />情報発信<br />ブログ:http://blogs.itmedia.co.jp/nagap<br />ブログ:http://blogs.msdn.com/tomohn<br />Twitter: http://twitter.com/tomohn<br />
  4. 4. 現場は変わったのか?<br />皆さんの “現場” は<br />変わりましたか?<br />変われそうですか?<br />このセッションで変われるか?<br />No! 答えは “現場” にあります。<br />このセッションはきっかけの一つになりたい。<br />
  5. 5. マイクロソフトのアジャイル開発支援<br />http://www.microsoft.com/japan/powerpro/developer/agile<br />“アジャイル” の適正な理解<br />隔週で更新!参加団体/コミュニティ続々登場!随時受付中!<br />勉強会の周知<br />開発者の元気<br />交流の促進<br />活動の可視化<br />すくすくスクラム<br />NPO法人 ドットNET分散開発ソフトピア・センター<br />Agile Japan<br />日本 XP ユーザグループ<br />すくすくスクラム瀬戸内<br />
  6. 6. 本日の内容<br />マイクロソフトとアジャイル開発<br />進化したVisualStudio2010<br />MicrosoftSolutionsFramework<br />AgileReady<br />同期安定化プロセス<br />ALMModernization<br />バリューアップ<br />
  7. 7. 本日のささやかな(?)予告<br />前半: 事例紹介<br />マイクロソフト本社でのアジャイル開発実践事例のポイントを紹介<br />後半: デモ中心<br />デモ:VisualStudio2010 の世界観<br />VisualStudio2010 on Windows<br />Eclipse on Mac OS X<br />
  8. 8. マイクロソフトと<br />アジャイル開発<br />
  9. 9. 市場から求められるもの<br />複雑化システム&チーム<br />適正納期<br />適正品質<br />利害関係者の増加<br />安定性<br />セキュリティ<br />・・・<br />市場への適正対応<br />コミットメント<br />・・・<br />
  10. 10. マイクロソフトの開発<br />独自の “アジャイルな” 開発文化<br />アジャイルプラクティス<br />同期安定化プロセス<br />市場ニーズ<br />Scrum<br />デイリービルド<br />開発者&テスターのペア<br />FDD<br />ムリ<br />XP<br />コード コンプリート<br />ムラ<br />ムダ<br />GetClean, Stay Clean<br />Product Backlog<br />Defining “Done”<br />アジャイルな開発スタイル<br />全体を通した透明性の維持<br />Iteration Backlog<br />Real Scheduling<br />Measurement & Hardening<br />Engineering Principles<br />
  11. 11. アジリティを向上させるためにバリューアップを実践するためのポイント<br />トップダウン<br />機能<br />製品戦略<br />作業<br />V.S.<br />計画<br />やり方<br />実績<br />ボトムアップ<br />バリューアップでアジリティを向上<br />WorkDown から ValueUp へ<br />最適化された意思共有の階層構造<br />
  12. 12. バリューアップとは<br />タスク達成率ではなく、価値を測定<br />価値を基準にした組織運営、意思決定<br />価値 = 投資収益率、信頼関係、透明性、  個人力、責任の共有、状況に応じた戦略<br />アジャイル プロジェクト マネージメント宣言<br />「相互依存宣言(Declaration of Interdependence)」<br />http://www.pmdoi.org/<br />12<br />
  13. 13. マイクロソフトが実践したこと<br />VisualStudio 開発部門 | 新規開発を完全中断して目指したこと<br />Endto End の透明性<br />“Done Done” の定義と徹底<br />統制のとれた ProductBacklog<br />品質 という “価値”を可視化<br />小規模チーム:FeatureCrew<br />開発者による見積もりと報告義務<br />段階的なチェックポイントのコミット<br />品質チェック機構:QualityGate<br />必要最小限のルールの徹底と   統制可能な規模での自由を保障<br />文化の改革、意識の改革<br />CodeComplete<br />FeatureComplete<br />
  14. 14. プロダクト バックログ<br />Endto End で利害関係者に透明性を提供する階層構造を定義<br />9<br />Mainobjectives<br />Scenario<br />Valueproposition<br />Value prop<br />Value prop<br />100<br />計画<br />exp<br />exp<br />exp<br />Experiences<br />300<br />Feature<br />Feature<br />実行<br />1,200<br />Feature<br />Feature<br />Feature<br />
  15. 15. マイクロソフト製品での階層構造<br />Continue What we’ve been doing<br />Re-engineerProcesses<br />MarketingFeature<br />Pillar<br />Theme<br />Scenario<br />Spec<br />Scenario<br />FeatureCrew<br />Improvement<br />Feature<br />Consolidate processes<br />Task<br />Task<br />Task<br />MicrosoftProcessTemplate(MPT)として、オープンソースで公開中<br />
  16. 16. 開発プロジェクトの課題オールインワン 開発インフラストラクチャの必要性<br />求められる機能/ツール<br />レポート<br />ビルド<br />タスク<br />ソース管理<br />ポータル<br />バグ<br />地味なコスト<br />個々のやり方/ツール習熟<br />ツール間のデータ連携<br />手動操作の凡ミスや、ストレス<br />導入/管理の手間ひま、フォローの遅れ<br />チームメンバー<br />マネージャ<br />
  17. 17. TeamFoundationServer (TFS)オールインワン 開発インフラストラクチャ<br />個別ツール<br />レポート<br />ビルド<br />タスク<br />ソース管理<br />ポータル<br />バグ<br />開発プロセス<br />作業項目管理<br />ソース管理<br />ユーザーストーリー<br />プロジェクト ポータル<br />Feature<br />タスクバグ<br />ビルド管理<br />メトリックス / レポート<br />マネージャ<br />チームメンバー<br />
  18. 18. マイクロソフトにおける TFS 実績<br />
  19. 19. マイクロソフトにおける TFS 実績<br />Raw データ&gt;<br />..31 TFS インスタンス<br />..VS 2008 in use since ‘05 <br />..VS 2010 in use since ‘07<br />2つの主要な利用目的&gt;<br />Dogfood * <br />製品開発<br />* Dogfood: n. [Microsoft, Netscape] Interim software used internally for testing. &quot;To eat one&apos;s own dogfood“… means to use the software one is developing, as part of one&apos;s everyday development environment… Developers… using their own software will quickly learn what&apos;s missing or broken. <br />
  20. 20. VisualStudio 開発部門<br />マイクロソフトでの大きな実例<br />2009年10月現在<br />17 TB以上のデータ<br />
  21. 21. 開発基盤で提供・サポート<br />TeamFoundationServer で分散開発、複数チームを統率<br />Value Proposition<br />Mainobjectives<br />Scenario<br />Value prop<br />Value prop<br />Valueproposition<br />計画<br />exp<br />exp<br />exp<br />Experiences<br />実行<br />feat<br />feat<br />feat<br />feat<br />Feature<br />Experience<br />Bug<br />Feature<br />Task<br />
  22. 22. FeatureCrew= プロジェクト<br />小規模なチームを構成し、自由を許容し、アジャイルを実践<br />『FeatureCrew』:Feature の完成に責任を持つチーム = プロジェクト<br />PM<br />DEV<br />TEST<br />Feature<br />#001<br />XP<br />1人<br />5人以下<br />5人以下<br />ModifiedAgile<br />Feature<br />#002<br />バーチャル チーム = 『FeatureCrew』<br />Feature<br />#003<br />WF<br />物理的な組織<br />
  23. 23. チームのライフサイクル<br />短期間で、成果を共有、確かな品質とアジリティを向上<br />Iteration#1<br />Iteration#2<br />ProductUnit ブランチ<br />3 ~ 6 週間<br />QualityGate<br />Feature ブランチ<br />CheckPoint#2<br />CheckPoint#1<br />
  24. 24. チームの見積もりを元に最適化<br />リスクを考慮し、常にアジリティの高い意思決定を継続する<br />重要な Feature を上位に押し上げ<br />Cut-line を見極める<br />Yellow/Red を見極め、減らす<br />Yellow/Red Game<br />
  25. 25. 段階的な期日のコミット<br />短期ゴール設定とより精度の高い見積もりでアジリティを向上<br />開始時<br />CP#1<br />CP#2<br />コミット<br />見積り<br />コミット<br />見積り<br />再見積り<br />コミット<br />CheckPoint (CP):<br /><ul><li>マネージャとのレビュー/フィードバック/意思決定の機会</li></ul>Feature ブランチ<br />CheckPoint#2<br />CheckPoint#1<br />実施計画レビュー<br />実施内容レビュー<br />どのように計画したのかを説明<br />何を実施したのかを説明Feature のデモ<br />
  26. 26. 簡素な責務を果し、昇華する<br />最小限の報告義務で、最大限の透明性を確保<br />Task<br />Task<br />Task<br />各 Feature の進捗<br />Feature 単位での報告義務<br /> (タスク レベルは Team の方針による)<br />ProductUnitの進捗<br />ビジネスの進捗<br />
  27. 27. 品質という “価値” を向上<br />QualityGate により、共通の品質基準で、”価値”を計測<br />セキュリティ計画<br />静的コード分析<br />QualityGate<br />コード カバレッジ<br />パフォーマンスの後退がない<br />ローカライゼーション テスト<br />API レビュー<br />すべてのバグ フィックス<br />
  28. 28. レポートの作成は、不要<br />TeamFoundationServer により、レポートは即時、自動作成<br />ValueProp<br />ValueProp からExperiences<br />Experience からFeatures<br />Feature 詳細<br />価値を高める堅実で、正しい開発を行えば、透明性は自ずと確保できる<br />透明性は、組織、チーム、個人の価値になる<br />
  29. 29. 課題と改善の実績(概要)<br />過去の製品開発サイクル<br />現在の製品開発サイクル<br />プロダクト バックログ<br />Planning<br />M0<br />リリース計画とコストの見積もり<br />プラクティスの改善、次期バージョンへの準備<br />MQ<br />M0<br />リリースの目的と顧客価値の設定<br />M1<br />・・・<br />開発作業<br />M3<br />6week sprints<br />開発とテスト作業<br />M3.1<br />・・・<br />3 ~ 4 年<br />2年以内<br />再開発作業<br />M3.3<br />主要利用シナリオのユーザーによるフィードバック<br />CTP<br />広範囲なユーザーへのお披露目とフィードバック<br />Beta1<br />Beta1<br />統合作業、そして祈り<br />Beta2<br />Beta2<br />ユーザーと共に変更点を確認、フィードバック<br />地獄のようなテスト<br />RC<br />RC<br />0 ~n 回の最終ビルド<br />0 ~n 回の最終ビルド<br />RTM<br />RTM<br />出荷!<br />出荷!<br />ムリ<br />ムダ<br />ムラ<br />
  30. 30. マイクロソフトが得た成果<br />Whidbey Beta 1Product bugs only<br />Orcas Beta 1 stats ALL bug debt<br />“負債”を10分の1に削減<br />最小限の延期<br />2倍のスケジュール改善<br />高い予測可能性<br />顧客満足度の大幅な向上<br />“Whidbey” = Visual Studio 2005<br />“Orcas” = Visual Studio 2008<br />
  31. 31. マイクロソフトが得た 国内 での成果<br />MSN Japan - http://jp.msn.com<br />開発主体: 日本<br />  ・開発ベンダー: 複数社<br />  ・オフショア:  複数国<br />垣根を越えた協力体制<br />縦割り構造のプロジェクト<br />リソースの最適化<br />個別最適なリソース活用<br />明確なゴールと意識統一<br />困難なゴールの設定<br />特徴的な成果の例:<br />コードレビューの効率化<br />リリース ビルドの効率化<br />毎 28 分<br />毎 15 分<br />85%削減<br />ビルド自動化の効果<br />シェルブにより対象の選択と共有に効果<br />毎 4 分<br />毎 1 分未満<br />
  32. 32. そしてVisualStudio2010 へ…<br />
  33. 33. 進化した<br />VisualStudio2010<br />
  34. 34. お願い<br /> 本セッションの内容は、現在開発中の製品について取り扱っています。内容は、予告なく変更される場合があることをあらかじめご了承ください。<br /> また、本セッションでは、内容を簡潔かつ、効果的にお伝えするため、詳細な情報には触れず簡略化しております。<br /> 今後の動向、詳細な情報については、『情報リソース』でご紹介する各種の情報をご覧ください。<br />
  35. 35. VisualStudio の進化AgileReady| Team System は ″標準″へ<br /><ul><li>アジャイル計画ツール
  36. 36. テスト駆動開発++
  37. 37. 継続的インテグレーション++
  38. 38. その他
  39. 39. テスト駆動開発
  40. 40. 継続的インテグレーション
  41. 41. その他</li></ul>VisualStudio 開発部門もアジャイル開発を実践 &DogFooding<br /><ul><li>単体テスト/リファクタリング
  42. 42. 自動ビルド
  43. 43. その他</li></li></ul><li>VisualStudio2010 製品構成<br />すべてのエディションで AgileReady!<br />設計から導入まで、アプリケーション ライフサイクルすべての工程に対応<br />UML<br />アーキテクチャーの可視化<br />高い品質と生産性を維持しながら開発するために必要な機能を搭載<br />コードカバレッジ<br />コード メトリックス<br />多様なアプリケーション開発を実現するために必要な基本機能を提供<br />単体テスト<br />リファクタリング<br />※ 機能は一例です。上位のエディションには下位のエディションのすべての機能が含まれます。<br />
  44. 44. VisualStudio2010 製品構成<br />TeamFoundationServer ベースで、より高い AgileReady!<br />テストの計画から追跡までテストプロセスをカバーする専用ツール<br />ストーリー駆動<br />テスト工程の効率化<br />テスト環境を仮想環境として作成し、包括管理、より高度な効率化と再現性を実現<br />仮想化技術<br />テスト アジリティ<br />チーム開発包括的に支援するオールインワン チーム開発基盤<br />Scrum ベース<br />フル カスタマイズ<br />※ 機能は一例です。<br />
  45. 45. アジャイル<br />Agile<br />Agile is a movement…<br />represented by a set of methodologies…<br />comprised of a set a best practices.<br />Scrum<br />XP<br />FDD<br />Others<br />CI<br />TDD<br />BDD<br />StandUps<br />Burn-down<br />Domain Model<br />ProductBacklog<br />Refactor<br />PairwiseProgramming<br />SprintBacklog<br />Feature Team<br />
  46. 46. プラクティスとツール<br />『Tool for Agility』 by Kent Beck より<br />出典:Kent Beck, Tool for Agility, June 2008<br />VisualStudio は、直接的な機能、多くの機能の組み合わせで、さまざまなプラクティスの実践、効率化をサポート<br />
  47. 47. 今度の予測<br />『Toolfor Agility』 by Kent Beck<br />今後のツール活用への期待<br />作業間のスムーズな移行<br />自動テストの対象の拡大<br />透明性<br />リアルタイムの共同作業<br />出典:Kent Beck, Tool for Agility, June 2008<br />
  48. 48. Visual Studio 2010 で実現<br />Create theProduct Backlog<br />Refactor<br />Existing<br />Architecture<br />Plan theIteration<br />UnitTestthe Code<br />Drive Quality Continuously<br />Use Integrated<br />Test Tools<br />Trackthe Iteration<br />
  49. 49. The “Done”SweetSpot<br />“Done”<br />自動化、効率化<br />テスト可能なビルド<br />徹底<br />ソース管理<br />ビルド<br />バグ・タスク<br />知る、認知<br />イテレーション<br />テスト実施<br />レイヤー検証<br />チェックイン<br />デプロイ<br />ストーリー<br />プロダクト<br />
  50. 50. MSFfor Agile 5.0<br />Microsoft Solutions Framework for Agile Software Development 5.0<br />英語: http://msdn.microsoft.com/en-us/library/dd380647(VS.100).aspx<br />日本語: http://msdn.microsoft.com/ja-jp/library/dd380647(VS.100).aspx<br />Scrum<br />EngineeringPractices<br />Artifacts<br />Roles<br />Meetings<br />MSF for Agile 5.0 のガイダンスをベースにしたプロセスが実装済み<br />  ⇒ そのまま、即利用、プロジェクトで活用<br />  ⇒ カスタマイズし、プロジェクトで活用<br />
  51. 51. Product Backlog Workbook<br />プロダクト バックログ<br />イテレーション バックログ<br />ユーザー ストーリー<br />ユーザー ストーリー<br />タスク<br />Commit!<br />3<br />3<br />3<br />Commit!<br />Can’t Commit!<br />キャパシティ<br />イテレーション プラン<br />
  52. 52. IterationBacklog Workbook<br />イテレーション バックログ<br />ユーザー ストーリー<br />タスク<br />Commit!<br />Commit!<br />Can’t Commit!<br />
  53. 53. Track Progress<br />
  54. 54. テスト影響分析より適切な開発者テストを効果的に<br />コード変更によるテストへの影響を分析、通知<br />即テスト実行<br />影響を受けたテスト<br />変更コード<br />
  55. 55. IntelliTrace™<br />デバッグ情報の記録、再生、巻き戻し<br />
  56. 56. アーキテクチャ 設計と検証<br />“Done” を実践、効率化する多くの機能を提供<br />レイヤー ダイアグラム と UML<br />アーキテクチャ エクスプローラー<br />
  57. 57. 単体テストとテスト駆動開発<br />“Done” を実践、効率化する多くの機能を提供<br />テスト記述<br />リファクタリング<br />テスト実施<br />テスト実施<br />コード記述<br />※TDD をサポートする各種機能は、Visual Studio 2008 から搭載<br />
  58. 58. 継続的インテグレーション<br />“Done” を実践、効率化する多くの機能を提供<br />GatedCheck-in (ゲート チェックイン)<br />チェックイン前に結合し、ビルド、BVTを実施、<br />OK 時のみチェックイン<br />※ 継続的インテグレーションは、Visual Studio 2008 から標準機能として搭載<br />
  59. 59. テスト管理とテスト効率化<br />“Done” を実践、効率化する多くの機能を提供<br />
  60. 60. Demo<br />VisualStudio2010 Ultimate + Team Foundation Server 2010 で行うアジャイル開発<br />すべて、デフォルト設定でデモンストレーションいたします。<br />※ カスタマイズすることで、最も馴染む環境にすることができます。<br />アーキテクチャ把握<br />タスク出しタスク認識<br />計画<br />TFS を用いたアジャイル計画<br />TFSによるタスクの取り扱い<br />アーキテクチャエクスプローラーと UML<br />テスト駆動開発<br />継続的インテグレーション<br />テストの効率化<br />単体テスト機能リファクタリング、メトリックスなど<br />包括的なテスト管理と手動テストの革新<br />TFS の進化したビルド機能<br />
  61. 61. Visual Studio+オープン ソース<br />TFS Sticky Buddy <br /> http:// tfsstickybuddy.codeplex.com<br />Team Build Screen Saver http://teambuildscreensaver.codeplex.com<br />Scrum Planning Poker http://scrumpoker.codeplex.com/<br />
  62. 62. 本日のまとめ<br />Agile Ready!AreYouReady?<br />マイクロソフトは、継続してアジリティの高いプラットフォームの開発に取り組みます。<br />進化した VisualStudio2010 は、その英知を皆様にお届けする開発プラットフォームです。<br />すべての機能を今すぐ試せます<br />VisualStudio2010Beta2 日本語版<br />詳細は、次のページ<br />
  63. 63. 情報リソース<br />VisualStudio2010<br /> β2 無償ダウンロードにて公開中!<br />http://www.microsoft.com/japan/visualstudio/products/2010/default.mspx<br />※ 最上位エディションをお試しいただけます。<br />
  64. 64. 情報リソース<br />VisualStudio2010 概要<br />http://www.microsoft.com/japan/msdn/vstudio/2010/overview/<br />魅力を動画を交えて解説!<br />
  65. 65. 情報リソース<br />マイクロソフトのアジャイル開発支援サイト<br />http://www.microsoft.com/japan/powerpro/developer/agile/<br />団体・コミュニティの<br />情報発信と共有支援<br />コラム、勉強会開催レポート、勉強会ビデオ・ストリーミング、勉強会開催告知などを掲載中<br />
  66. 66. 情報リソース<br />アジリティ(俊敏性)向上のためのツール<br />Kent Beck 著<br />http://download.microsoft.com/download/5/1/8/518c15f0-ca42-429d-93c6-b5890183a979/Tools_for_Agility_white_paper_by_Kent_Beck.pdf<br />http://bit.ly/16Ig1j<br />
  67. 67. 情報リソース<br />Visual Studio Team Systemで実践する<br />ソフトウェアエンジニアリング<br />成功する開発プロジェクト運営のために<br />著者<br /> SamGuckenheimer<br /> JuanJ.Perez<br />
  68. 68. Please Save the Date<br />2010.03.19 FridayAgileDay2 開催決定!<br />主催: マイクロソフト株式会社<br />場所:東京・新宿 マイクロソフト新宿オフィス<br />参加費: 無償 ※事前登録制<br />1月22日 第1回の模様<br />詳細は、以下でお知らせ!<br />http://www.microsoft.com/japan/powerpro/developer/agile/<br />
  69. 69. お問合せ先<br />マイクロソフト株式会社エバンジェリスト長沢 智治 (ながさわ ともはる)<br />tomohn@microsoft.com<br />http://blogs.msdn.com/tomohn<br />http://blogs.itmedia.co.jp/nagap<br />http://twitter.com/tomohn (@tomohn)<br />
  70. 70. ご清聴、まことにありがとうございました。<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×