Microsoft Solutions Framework

Team System という製品が形作られて行く上で、もっとも大きな影響を与えたのはなにか?、と尋ねられたら Microsoft の開発チームの開発文化や手法、環境、と答えています。

とはいっても3万数千人の開発者がいる会社ですから、部門やチームによってその文化や手法は様々です。

そんな中、Microsoft の開発文化の一端を垣間見ることのできる資料として以下があります。

  • ソフトウェア企業の競争戦略(マイケル.A.クスマノ著)

開発のベスト・プラクティスとして、「同期安定化プロセス」を紹介されています(Daily Build のプラクティス。より厳格なものになると Continuous Integration(常時結合))。また、開発者とテスト担当者の1:1配置や、「ドッグ フード」、「ユーザビリティ ラボ」による品質に対する継続的な取り組みを取り上げています。。

クスマノ氏によるオンラインで参照可能な文章としては下記もあります。

https://dspace.mit.edu/bitstream/1721.1/2736/1/SWP-4046-42019934.pdf

(P.19の、「KEYEVENTS INMICROSOFT'S ORGANIZATIONAL EVOLUTION」の1989年に、Daily Build と Zero-Defect code の話しがあり、その当時からそれらのプラクティスを取り入れていたことがわかります。)

  • Joel on Software

ジョエル・テストにおいて、マイクロソフトにおける開発経験から理想的な開発環境・組織を紹介されています。そのほかにも「無欠陥志向」(Zero-defect Mindset。ジョエル・テストでは“欠点0方法論”)等についても言及されています。

https://japanese.joelonsoftware.com/Articles/TheJoelTest.html

  • Visual Studio の開発の現場から

https://itpro.nikkeibp.co.jp/article/Windows/20050905/220609/?ST=win

日経IT Pro にて連載されていた記事で、Microsoft の日本の Visual Studio 開発チームのインタビュー記事です。日本のメンバーが日々、どのように業務に携わっているかを参照いただけます。

そして、よりフォーマルな形で、マイクロソフトの開発文化を元にプロセス フレームワークとして作成された Microsoft Solutions Framework (通称MSF)があります。

  • Microsoft Solutions Framework(MSF)

マイクロソフト社内における過去の事例やベストプラクティスを基に構成されたプロセス フレームワークで、1994年に version 1.0 を発表。2006年に version 4.0 の提供を開始しています。プロセス“フレームワーク”と呼ばれているのは、すべての組織にマッチするプロセスはない、という考えに基づき、MSFでは完全なプロセスの型を提供するのではなく、プロセスの大枠を提供する、という立場をとっているからです。

version 4.0 のドキュメントは、Team Foundation Server に同梱されているプロセス ガイドとして参照できます。また、version 3.0 に関するホワイトペーパーは以下でも参照いただけます。

https://www.microsoft.com/japan/msdn/vstudio/productinfo/enterprise/msf/

上記2つの資料にある Zero-Defect な取り組みに関しては、MSF の 「チームモデル」のホワイトペーパー(上記サイトにあります)にて、「無欠陥志向」として紹介されています(P.13)。

マイクロソフトの開発組織では、それぞれの組織や個々の開発者にかなりの権限と裁量が渡されているため、MSFの内容がすべての開発組織、開発者が実施している内容、というわけではないのですが(※)、基本的なイメージは確認いただけると思います。特に、MSF のチームモデルで挙げられている組織構造に関しては、マイクロソフト開発組織で共通に利用されているモデルになっています。

 

そしてこういった開発文化において使用されている社内ツールをもとに、チーム開発において本当に必要とされるコアな機能を提供している製品が Team System なのです。

したがって、マイクロソフトの開発文化や、MSF の要点について理解いただくことは、Team System という製品を最大限に活用いただく上で非常に有用な方法であると思います。

 

この Blog では、今後そういった話も取り上げたいと思います。

 

※ たとえば、Agile 系の開発手法を好むチームでは、SCRUM に基づくプロジェクト管理を実施しているチームもあります。つまり、MSF + SCRUM、というイメージです。