Visual Studio 2005 Team System : Microsoft Solutions Framework
Visual Studio Team System
Microsoft Corporation
May 2004
日本語版最終更新日 2004 年 6 月 15 日
適用対象:
Microsoft Visual Studio 2005 Team System
概要 : Microsoft Solutions Framework (MSF) は、ライトウェイトな「アジャイル」と大規模プロジェクト向けの「フォーマル」の両方の方法論を取り入れたプロセス ガイドで、さまざまなプロジェクトに適用できるよう、カスタマイズ可能なフレームワークを提供します。
メモ このドキュメントは製品のリリースに先立って制作されているため、実際に出荷される製品にこのドキュメントの内容が正確に反映されるとは限りません。このドキュメントの情報は、このドキュメントの公開時点の製品について書かれたものであり、計画以外の目的で利用できるものではありません。また、このドキュメントの情報は、予告なしに変更される可能性があります。
目次
はじめに
MSF の簡単な歴史
従来のアプローチ
従来のアプローチから得た教訓
MSF のソリューション : 教訓の活用
拡張の可能性
まとめ
はじめに
Microsoft® Solutions Framework (MSF) は、高度なカスタマイズ性、拡張性、統合性を持つソフトウェア開発プロセス、原則、および実証済みプラクティスのセットであり、ユーザーが必要とする種類のガイドを必要なときに必要な場所で提供するように作られています。MSF には、Microsoft 社内外で実証されたガイドが取り入れられています。また、ソフトウェア開発ライフサイクル (SDLC : software development life cycle) においてプロセスの自動化とプロセス ガイドを提供するために、Visual Studio 2005 Team System とシームレスに統合することが可能です。本ホワイトペーパーでは、MSF 4.0 の概要、簡単な歴史、SDLC の一部としてのプロセス ガイドに対する従来のアプローチの問題、そうした従来のアプローチと MSF で採用されているアプローチとの比較、および拡張の可能性について説明します。
図 1 : MSF と Visual Studio 2005 Team System とのやり取り
MSF は、アプリケーション開発の改善に向けた、カスタマイズ性と拡張性を持つ、ソフトウェア開発ガイドラインのセットを提供します。MSF には、「アジャイル」と「フォーマル」の両方のアプローチが取り入れられており、ユーザーが最適な方針を選択できるようになっています。MSF の柔軟なフレームワークは、規模や複雑さに関係なく、あらゆるプロジェクトのニーズに適応します。MSF は、すべてのプロジェクトの要件や環境に完全に当てはまるような単一の構造やプロセスは存在しないという思想に基づいています。その一方で、ガイドが必要とされているという認識もあります。MSF が提供するガイドは、細かな規定を押しつけるものではありません。提供されるコンテンツは、ユーザーが自由にカスタマイズできます。MSF のコンポーネントを個別に適用したり、まとめて適用することで、さまざまなタイプのプロジェクトの成功率を上げることができます。
ソフトウェア プロフェッショナルによってソフトウェア プロフェッショナルのために開発された、生産性、統合性、拡張性に優れたプロセス ガイドを提供する、それが MSF のビジョンです。
生産性 - MSF の重要なビジョンの 1 つとなるのが、人々の生産性の向上です。そのために MSF では、プロセス ガイドの提示方法の合理化やカスタマイズが行われています。ユーザーは、詳細なコンテンツの代わりにチェックリストやガイドラインを使用することで、タスクやアクティビティを完了するための要件をすばやく確認できます。
統合性 - ツールセット全体がシームレスに統合されているほか、ツールのヘルプと MSF のコンテンツも統合されており、ソリューションやガイドがツールの中で提示されます。また、こうした要素すべてが、MSDN 内およびツールセットのあらゆる側面にわたって、簡単に更新できるようになっています。コンテンツ自体も、メンテナンスが容易になるように整理されています。
拡張性 - プロセス ガイドとヘルプは、MSF 内で完全にカスタマイズできます。ユーザーは、アジャイルまたはフォーマル アプローチを選択し、シナリオベースの開発を取り入れ、コンテンツを通して自らの方針を決定します。
MSF のガイドは、"人とプロセス" の管理に重点を置いています。ソフトウェア開発チームのニーズやプラクティスは絶え間なく進化しているため、MSF に集められているマテリアルも、それに合わせて継続的に変化し、拡張されています。さらに、MSF では、Microsoft Operations Framework (MOF) との相互作用により、プロジェクトの長期的な成功に不可欠な、運用環境へのスムーズな移行も可能です。
MSF の簡単な歴史
MSF の構成要素には、よく知られている業界のベスト プラクティスをベースに、Microsoft が 25 年以上にわたってハイテク産業で培ってきた経験が活かされています。これらの要素が互いに連携して、Microsoft のコンサルタント、パートナー、およびお客様がテクノロジのライフサイクルの中で直面する多くの重要な問題に取り組むのを支援します。
MSF が最初に発表されたのは 1994 年でした。当初は、Microsoft の製品開発の取り組みや Microsoft Consulting Services のビジネスから集められたベスト プラクティスの緩やかな集合体でした。その後 MSF は、Microsoft の開発チーム、Patterns & Practices グループ、Trustworthy Computing、Microsoft Operations Framework、Engineering Excellence グループなどの Microsoft 社内のソースから集められた、実際に成功している現実のベスト プラクティスをベースに進化し続けています。また、Accenture、Avanade、Capgemini、EDS、Fujitsu、Infosys、Unisys などのグローバル サービス インテグレータで構成される MSF Partner Council などの外部のソースも大きく貢献しています。このほか、Borland、Merrill Lynch、Agile Alliance、The Software Engineering Institute なども重要な外部ソースとなっています。
MSF では、こうして集めた Microsoft 社内外で実証済みの現実のベスト プラクティスを、パートナーやお客様にとってよりわかりやすく、簡単に採用できるものとするために、単純化、統合整理、および検証しています。現在の MSF は、堅牢で成熟したフレームワークとなっており、各分野の専門家からなる国際的な諮問委員会による指導とレビューを受けながら、Microsoft 社内の専任の製品チームが管理および開発にあたっています。また MSF には、現在も引き続き、Microsoft の最新のエクスペリエンスが活かされています。Microsoft 社内では、さまざまな業務分野のチームによって定期的にベスト プラクティスやツールが作成、発見、共有されています。こうした社内プロジェクトの中でチームが学び取ったことが、MSF によってまとめられ、Microsoft の外部へと配布されています。
従来のアプローチ
プロセスに対する 2 つの思想と 2 つのアプローチ
ソフトウェア コミュニティにおけるプロセスに対するアプローチは、過去数年の間に 2 つの基本思想へと発展しました。この 2 つを比較すると、それぞれに長所と短所があります。このほか、ビジネスの世界ではプロセスに対する 2 つの別々のアプローチも生まれています。一方はソフトウェア産業から独立したもの、もう一方はソフトウェア中心のプロセスの作成を目指すものです。
アジャイル プロセス モデル
アジャイル プロセス モデルは、Agile Alliance と呼ばれるソフトウェア専門家のグループによって作成されました。Agile Alliance は、人よりもプロセスを重視する考え方を否定しています。アジャイル プロセス モデルは成功を収めていますが、その成功はプロセス モデルの効果というより、むしろ参加する個人の能力によるところが大きいという批判もあります。
フォーマル プロセス モデル
フォーマル プロセス モデルは、ソフトウェア開発文化から離れたビジネスの世界で主に発展してきました。このアプローチでは実証済みのフレームワークが提供されますが、それを SDLC に適用した場合、煩雑になるうえ、市場に対応した高品質のソフトウェアをタイミングよく開発できるという保証もありません。
2 つのアプローチ : ソフトウェア独立型とソフトウェア関連型
上述の 2 つのプロセス モデルに加えて、SDLC のプロセスの開発方法も 2 つ生まれています。一方は、ソフトウェア産業の要請とは無縁にプロセスを開発し、"1 つのプロセスがすべての業界に適合する" というタイプのガイドを作成しています。この種のプロセスは、ソフトウェア開発からは切り離されたものとなっており、出版されているテキストや方法論に大きく依存しています。こうしたプロセスに対する多くのソフトウェア専門家の反応は、「いったいこれをどうやってプロジェクトに当てはめればよいのか」というものでした。
これに対して、ソフトウェア開発に結び付いたプロセスを作成しようという試みも見られます。既存のパッケージ化されたプロセスはこの SDLC との関連性という問題に取り組んでいますが、多くのソフトウェア専門家は、情報量が多すぎてすぐには理解できず、"現実の" ソフトウェア開発に適用するのも容易ではない、と感じています。
ソフトウェア専門家にとってプロセス ガイドの最も重要な要素とは、ツールのサポートに統合されていて、適切なガイドが適切なときに提供され、すぐに利用できるようになっていることです。MSF では、プロセス ガイドの実施を SDLC の日常の活動へとシームレスに統合することに重点を置いています。
従来のアプローチから得た教訓
プロジェクト マネージャからは、プロセスのトレーニングは費用がかさむとか、方法論がかえって障害になっているなど、不満がよく聞かれます。既存のツールを使用して SDLC にプロセス ガイドを取り入れようとする現在のアプローチは、結局、ヘルプからもツール自体からも切り離されたガイドになってしまっている場合がほとんどです。さらに、コンテンツのルート マップもユーザーにわかりにくいものになっています。
多すぎるコンテンツ
既存のソリューションでは、提供されるコンテンツが適切でなかったり、既に古くなっていたり、多すぎたりしている場合があります。現在このようなコンテンツで採用されているのは、"埋め立て型" のアプローチです。そこでは、ただ大量のコンテンツが提供されるだけで、ユーザーは特定のプロジェクトに関連する情報を自分で選り分けなければなりません。すべての人を満足させようとするこのアプローチは、アジャイルにもフォーマルにも徹していないため、結局だれも満足させることができません。さらに、既存のパッケージ化されたプロセス ガイドでは、コンテンツの更新も簡単ではありません。その結果として、ツールのヘルプ、テンプレート、およびガイドの間に不整合が散見されます。
利便性と直感性に欠けるカスタマイズ
SDLC プロセスのカスタマイズの試みは、比較的成功している場合でも、使いにくいものとなっています。カスタマイズを開始するにはガイドを使用しなければならず、カスタマイズのために用意されている例も実用性に欠けるものばかりです。その結果、いったんガイドをカスタマイズしてしまうと、ほとんどの場合、使いものにならなくなっていました。
既存のパッケージ化されたプロセス ガイドでは、ユーザー エクスペリエンスの一貫性も実現されていません。プロセスをカスタマイズして有用なシステムを作り出すためには、多くの場合、ユーザーの多大な努力が必要になります。その結果、プロジェクトの技術や環境に応じて変化することのない静的なプロセスになってしまう場合がほとんどです。こうした静的なプロセスはすぐに時代遅れになってしまうため、実用的ではありません。さらに、このような形でカスタマイズしたプロセスは、単なる Web ページの集まりにしかなりません。選ばれたツールセットとの統合は、ソフトウェア開発ツールや配置 (デプロイメント) 環境をプロセスのコンテキストで使用するための特定のページという形で実現されているだけです。プロセスとツールセットの相互作用のあらゆる面が考慮されている例はほとんどありません。ツールのユーザーは、ブラウザに切り替えて適切なトピックを探さなければなりません。その結果、ばらばらであるという印象ばかりが残ります。
これとは対照的に、優れた生産性と統合性を誇る MSF のアプローチは、プロセスとツールの調和を特徴としています。MSF では、すべてのアクションがプロセスのコンテキストに取り込まれています。実際の作業と作業計画、テスト カバレッジとバグ フィックス、コード チャーンとコードの安定性などのメトリクスは、追加の作業を必要とすることなく自動的に追跡されます。データは、日々のアクティビティの一部として収集されます。かつては面倒だった、プロセスによって要求される作業も、MSF では、ほとんど労力を必要としない単純な作業となっており、ユーザーの知らない間に行われています。
MSF のソリューション : 教訓の活用
MSF では、ソフトウェア開発プロセスの定式化とプロセス ガイドの統合のために、過去の試みから得た教訓が活かされています。その結果となるのが、Microsoft 社内のベスト プラクティス、社外ソースから提供されたノウハウ、およびこれらの教訓からなる集合体です。この集合体が、必要なときに適切かつ有用なガイドを提供するフレームワークとなります。MSF のビジョンに取り入れられている過去の教訓の例としては、保守を考慮したコンテンツ設計、明確なメタモデル、明確なプラグイン モデル、コンテンツの多数のナビゲーション パスなどが挙げられます。
保守を考慮したコンテンツ構成
MSF は、コンテンツを効率的に更新できるように設計されています。コンテンツは、MSDN 内およびツールセットのあらゆる側面にわたって、簡単に更新できます。テンプレート、ガイド、およびツールのヘルプを同時に更新できるため、プロセス ガイドのさまざまな側面の間に不整合が生じる心配がありません。これにより、ガイドの統合パッケージを拡張して使用する場合のユーザーの生産性が向上します。
明確なメタモデル
MSF は、包括的なメタモデルによって管理されています。このフレームワークによって、プロセス ガイドのユーザーへの提示方法が決定され、その一貫性が確保されます。ユーザーはこのメタモデルによって、必要なガイドの種類や、プロジェクトで要求される複雑さのレベルを簡単に特定できます。いったんガイドの種類と複雑さのレベルを選択すると、MSF によって適切なガイドが適切なタイミングですばやく提供されます。
明確なプラグイン モデル
MSF には、コンテンツのカスタマイズや "プラグイン" のための明確な方法が用意されています。ユーザーは、いったんプロセス ガイドの種類と複雑さのレベルを選択したら、MSF によって提供されるコンテンツをそのまま使用することも、ユーザーやプロジェクトのニーズに合わせてカスタマイズすることもできます。MSF には、強力かつ適切なコンテンツ例が用意されており、高品質なプロセス ガイドを作成するための堅固な基盤として使用できます。
多くのナビゲーション パス
MSF では、プロセス ガイドのナビゲーション パスは 1 つではありません。ユーザーの決定に応じて変化するさまざまなパスが用意されています。ユーザーは、必要に応じて、きわめて詳細なプロセス ガイドを "そのままの形で" 利用することも、基本的なチェックリストをプロジェクトのニーズに応じてカスタマイズして利用することもできます。Visual Studio 2005 Team System で利用可能な統合ツールにアクセスするたびに、プロセス ガイドの詳細さとカスタマイズのレベルを選択できます。
過去の試みから得た教訓と Microsoft 社内外のリソースを活用することによって、Visual Studio 2005 Team System のプロセス統合は、かつてないソリューションをソフトウェア専門家に提供します。
拡張の可能性
MSF では、プロセスは単なるドキュメントではありません。プロセスによってツールの動作も変化します。プロジェクトの開始時にプロセスを選択すると、ワークフローと作業成果物も一緒に選択されます。これにより、システムの動作が決まります。SDLC プロセスのサポートが組み込まれているため、シームレスなワークフローのサポートが実現されます。MSF では、チームのメンバが毎日のように使用するツールにプロセスが統合されているため、プロセスの採用にあたっての障害が少なくなっています。また、複数の職務にまたがったプロジェクト メトリクスを自動的に収集できるため、手動によるレポート作成に伴うオーバーヘッドもありません。以下のような要素をカスタマイズできます。
-
プロセス ガイド
-
繰り返しの構造
-
開始基準と終了基準のビュー
-
ワーク アイテムの種類の定義とルール (アクティビティと作業成果物)
-
ワーク アイテムのクエリ
-
ソース チェックイン ポリシー
-
ロール クラスタとセキュリティ グループ
-
文書テンプレート (Excel と Word)
-
Microsoft Project のテンプレート
-
レポート
-
プロジェクト ポータル (SharePoint サイトのテンプレート)
MSF では、個々のプロジェクトが従うプロセスを、メソドロジ テンプレートを使用して定義します。あらゆる組織に適合する万能なプロセスなどありません。組織内でさえ、1 つのプロセスをすべてのプロジェクトに適用することは不可能です。この問題に対処するために、MSF では、アジャイル プロセスにもフォーマル プロセスにも対応する柔軟なツールセットを用意しています。Microsoft の Global Solution Integrator パートナーからも独自のメソドロジ テンプレートが提供されるほか、自分でテンプレートを作成することも可能です。プロセスの拡張性によって、ワーク アイテムの種類、チェックイン ポリシー、カスタム レポート、およびプロジェクト管理テンプレートのカスタマイズが可能になります。
まとめ
MSF は、適切なプロセスを適切なときに適切な人に対して提示することによって、より洗練されたソフトウェア開発のプロセス ガイドを提供します。Microsoft 社内外の選りすぐりのソースから集めた、実際に成功を収めているベスト プラクティスをベースに、ソフトウェア開発プロセスを定式化しようとするこれまでの過ちを避けつつ、その試みで成功している要素を取り入れています。MSF のソリューションは、生産性、統合性、および拡張性に優れたプロセス ガイドのフレームワークと、アジャイル プロセスにもフォーマル プロセスにも対応する柔軟なツールセットを提供します。
Visual Studio 2005 Team System のその他のメンバの詳細については、以下のトピックを参照してください。
Visual Studio Team System の詳細については、以下のトピックを参照してください。