Insider's Eye

マイクロソフトが提供する開発指針「MSF」とは何か?

―― 翔泳社デブサミ2005 セッション・レポート ――

デジタルアドバンテージ 一色 政彦
2005/02/09
Page1 Page2

 2005年2月3日(木)〜4日(金)にかけて、翔泳社主催の開発者向けカンファレンス「Developers Summit 2005」(通称「デブサミ」)が青山ダイヤモンドホールにて開催された。このカンファレンスは、.NETのみならず、Java/J2EE、データベース、組み込みソフトウェア、開発プロセスなどの幅広い技術領域/技術者を対象としたもので、どのセッションも立ち見が出るほどの盛況ぶりであった。

 筆者はこのカンファレンスに両日参加し、いくつかのセッションを聴講した。本稿ではその中でも、「Microsoft Solutions Framework」(以降、MSF)について説明したセッションに注目し、その内容を筆者なりに要約して紹介したい。MSFは、企業向けアプリケーション開発の分野で今後重要性が高まると考えられているが、現時点では非常に情報が少ないからである。

 このMSFのセッションは、実際の現場で活躍している現役技術者である、マイクロソフト株式会社 コンサルティング本部(通称「MSC」)の小泉 浩氏により行われた。具体的なセッション・タイトルは、『マイクロソフト ソリューションズ フレームワーク ――革新的ITソリューション提供のためのベスト プラクティス』である。

 小泉氏のセッションは、「紙にフリーハンドで10円玉の大きさの円を5つ描いてください」というプログラミング課題から始まった。5つの円を描いて、席隣の人がその5つの円が実際の10円玉と同じ大きさかどうかをテストする。当然ながら、5つの円がすべて(厳密に)合致する人は会場内にはいなかった。

 その事実を実際の<開発プロジェクト>になぞらえて、「フリーハンドで描かれたそれぞれの円が合致しないように、各開発プロジェクトを比べると、どうしてもバラツキがあるものだ」と小泉氏は語った。これに対し、開発プロジェクトのバラツキを重ね合わせることで、その共通部分を抽出したパターンが<開発プロセス>なのだという。

  • 開発プロジェクト=固有の目的(→バラツキが大きい)
  • 開発プロセス=共通のパターン(→バラツキが小さい)

 そしてマイクロソフトが提供する「MSF」は、そのような開発プロセスなどといった「開発プロジェクトに対する共通のパターンや指針」を提供するものであるとした。

 以下は筆者の見解になるが、MSFには、開発プロジェクトの進め方を規定する、いわゆる「開発プロセス・モデル」だけでなく、その開発プロジェクトのチーム編成や役割分担を規定する「開発チーム・モデル」など、いくつかの要素が含まれている。しかしそれらの要素のまとまりをうまく表現する言葉がないため、その名前(=Microsoft Solutions Framework)に、多義的であいまいな「Framework(フレームワーク)」という用語が用いられているのだと思う。ここで使われている「フレームワーク」という用語には、単に「開発を進めるための枠組み(決めごと)」くらいの意味しかないだろう(なお「フレームワーク」という用語がこのような使い方で多用されると、名前からその内容が非常に分かりにくくなるので、安易に「フレームワーク」と命名するのはやめていただきたいと筆者は思っている)。

 私見はさておき、小泉氏のセッションではそのような前置きから本題に入り、次のアジェンダに基づいて解説が行われた。

  1. イントロダクション(MSFの目的など)
  2. MSFチーム・モデル
  3. MSFプロセス・モデル
  4. MSFの規範

 以降本稿では、このアジェンダの内容を(セッション・レポートの形式ではなく)技術解説的に説明していくことにする。特に断りがなければ、その内容は小泉氏が語ったものを基に、筆者の理解と言葉により文章化したものである(ただし、モデル/原則などの定義内容、図、そこで使われる用語は小泉氏のセッション資料のものをほぼそのまま引用した)。なお筆者が説明のために独自に追加した内容はその都度、明記する。

1. イントロダクション(MSFの目的など)

 MSFが作られた背景には、ビジネスに対するITソリューションの影響度が年々増大してきており、またそのITテクノロジの効果にますます大きな期待が寄せられるようになってきているという現実課題がある。しかし実際の開発現場では、その課題に必死に応えようとしているものの、その開発にかかる予算や時間は超過しがちである。つまり、開発プロジェクトが部分的に失敗しているという事態が頻繁に発生しているのだ。

 実際に、Standishグループが1994年から2000年にかけて実施してきた米国内の大・中・小規模3万の開発プロジェクトについての調査によれば、いずれの年においても成功(=遅延やコスト超過などがないプロジェクト)は30%にさえ達せず、失敗(=これ以上続けてもコスト高になってしまうと判断されて中止となったプロジェクト)は常に20%以上もある(調査データの詳細は割愛。出典:The Standish Group International, Extreme Chaos, The Standish Group International, Inc., 2000)。

 ITプロジェクトにおける失敗の根本原因にはさまざまなものが考えられるが、代表的な例では、多すぎる制約などの「チーム環境」、不明確なゴールなどの「あいまいなプロセス」、はっきりしない責任などの「チームワークの障壁」などの問題を挙げることができる。そしてこれらの根本原因を取りまとめてみると、そのほとんどが(テクノロジではなく)「人とプロセス」に関係するものであることが分かる。

 そこでマイクロソフトは、そのような「人とプロセス」に関係する根本原因を駆逐するために、「人とプロセス」の組織化の指針を提供しているのである。それこそがMSFなのだ。これによって、ITソリューションの計画/構築/展開などの開発ライフサイクル全体を成功させよう、ということがMSFの最終目的なのである。

●MSFのモデルと規範

 MSFは「人とプロセス」に対して、その指針となる次の2つのモデルを提供している。

  • チーム・モデル(=人に対してのモデル)
  • プロセス・モデル

 さらに、それらのモデルをすき間なく確実に遂行・マネジメントするために、その際の判断・行動の基準となるルールとして次の3つの規範を提供している。

  • プロジェクト・マネジメント規範
  • リスク・マネジメント規範
  • レディネス・マネジメント規範

 これらのモデルと規範の内容については、以降の解説でもう少し詳しく説明する。その説明に入る前に、MSFの基礎知識として「MSF基本原則」と「MOF(Microsoft Operations Framework)」についても簡単に紹介しておこう。

●MSFの基本原則

 以上のモデルと規範の大前提として、MSFでは次の基本原則を採用している(原則の内容は小泉氏のセッション資料からそのまま抜粋したもの)。

  • 説明責任(=役割分担)を明確にし、実行責任を共有する
  • チーム・メンバーをエンパワーする
  • ビジネス上の価値に集中する
  • ビジョンを共有する
  • 俊敏であり続け、変化を予測する
  • オープンなコミュニケーションを促進する
  • すべての経験から学習する
  • 品質に投資する

 基本原則は実際のMSFの内容そのものというよりも、決意文に近い。「私はこの原則に基づいてモデルや規範を形成します」ということを宣言しているわけである。本稿ではこれらの基本原則の内容についての詳細は割愛する。取りあえずここでは、「以降で説明されるモデルや規範がこれらの基本原則に基づいて作成されている」ということを知っておけばよいだろう。

●MOFについて

 マイクロソフトは前述したMSFの最終目的のとおり、開発プロジェクトのライフサイクル全体を一貫してサポートすることを目指している。そのITライフサイクルの中で、MSFはソリューションの「提供(=実装)」を担うものであるが、そこで作成されたソリューションの「運用」を担うのが「MOF(Microsoft Operations Framework)」である。小泉氏のセッションでは、このMOFについて多くは語られなかった。MOFの詳細はMicrosoft TechNet「Microsoft Operations Framework」(英語)が参考になる(なおこのサイトの紹介は、筆者による)。

 それでは再び話を戻し、先ほど述べたMSFのモデルと規範の内容について説明していこう。

 

 INDEX
  Insider's Eye
  マイクロソフトが提供する開発指針「MSF」とは何か?
  1.MSFの概要
    2.MSFのモデルと規範
 
 Insider's Eye


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間