次の方法で共有


アーキテクトへの道 シリーズ 第五話

開発プロセスのポイント

オブジェクト指向やコンポーネント、サービス指向など開発方法論は次々と新しいものが登場します。開発方法論はアプリケーションを構築する上で、対象ドメインをどのように扱うかを規定するものです。しかし実際のプロジェクトに適用しようとした場合に、自分はどういう手順で作業をすればよいのか迷うことになります。

そこで重要なのが開発プロセスです。つまり開発プロセスは開発方法論を適用するための作業手順を規定するものだと言っていいでしょう。

以下の図をご覧ください、1994 年から 2000 年にいたるまでのソフトウェア開発プロジェクトの成果に関する統計を示しています。サンプル数 3 万程度のうち成功したといえるプロジェクトは 30% もありません。つまり 70% は失敗もしくは非常に困難な状況であったということを示しています。

これはどこに原因があるのでしょうか。失敗の具体例としてはスケジュール超過、予算オーバー、仕様どおりに動作しないなど複数存在しますが、共通する原因として考えられるのはプランニングから構築、テストにいたるまでの作業プロセスが未熟であるということです。

ソフトウェア開発プロジェクトの成果に関する統計
Source: The Standish Group International, Extreme Chaos, The Standish Group
>International, Inc., 2000

では開発プロジェクトに求められる要素とは何でしょうか? 私はずばり以下の 2 点に集約されると考えています。

  • 発注者の意図を正確に反映できること
  • 要件や環境の変化への対応を迅速に行えること

開発プロセスに対する入出力は何かというと一般的にはこのように考えがちです。

開発プロセスに対する入出力1

しかし現時点での IT 業界で問題視されているのは、インプットである要件が明確でないことです。つまり下記のように考える必要があります。

開発プロセスに対する入出力2

発注者は業務に関する知識はあるものの、それを IT の世界で理解可能なフォーマットで明確に表現することに困難さを感じているのです。今後はその部分にフォーカスを当てていく必要性が増してきます。そして漠然とした意図は開発プロジェクトの期間中に変化することが常です。オフショアベンダーの方と話しをしていると特に日本の場合には諸外国に比べてそのような特徴が顕著だということです。それゆえに変更にいかに迅速に対応できるかといった要素が重要になってきます。

■開発プロセスの構成要素

開発プロセスにも Unified Process に代表されるようなフォーマルなものから XP のようなアジャイル性を重視したものまでいろいろな種類があります。これらはいろんな角度で分類されます。例えば要件分析から始めるトップダウン、制約条件を重視したボトムアップ、ICONIX のようなドメインモデルから始めるミドルアウトなどのようにアプローチの仕方の違いであったり、モデルやドキュメントなどの仕様に関する成果物を重視するという考え方と、テストハーネス、コードという直接的な成果物を重視するといった成果物に対する考え方の違いもあります。しかし共通して言えるのは以下の要素で構成されているということです。

  • 原則:プロジェクトの成功を達成するためのキーファクターを定義
  • 成果物:最終成果物 (実行可能コード) にいたるまでのすべての中間成果物
  • 作業項目:上記成果物を構築するための作業手順
  • チームモデル:どの作業を誰が担当するのかを規定したもの

■マイクロソフトの開発プロセス-Microsoft Solutions Framework (MSF)

MSF は長年にわたるマイクロソフトの製品開発から得たれたベストプラクティスをベースとして 1994 年に登場したもので、今日にいたるまで継続的に進化してきて現在 3.0 がリリースされています。今年は MSF 4.0 という新しいバージョンをリリースいたします。開発プロセスに関しては、ここ数年の傾向として XP などに代表されるアジャイルプロセスモデルと、UP などのフォーマルプロセスモデルの 2 大勢力にわかれていますが。それぞれに対して一長一短があり、プロジェクトタイプ、規模、開発メンバーのスキルおよびスケジュールなど与えられた条件に適したものを選択するのが相応しいのです。

MSF には中小規模プロジェクト向けのライトウェイトなプロセスである "MSF for Agile Software Development" と大規模向けプロセスである "MSF for CMMI® Process Improvement" の 2 種類が存在し、プロセスの原則、成果物、作業フローやチームモデルが定義されています。

これらはいずれも次期開発ツール Visual Studio 2005 に組み込まれており、ツールを利用することで自動的にこの最新の開発プロセスに対応する形でプロジェクトを進めることが可能となります。ここでは MSF 4.0 アジャイルにおける開発プロセスを下図に示します。

MSF イテレーション
図. MSF イテレーション

このようにプランニング-開発-テストという作業をインクリメンタルに繰り返し実施していくわけですが、作業を進めるにあたり全体の中のどの部分を担当するかを明確にロール (役割) という概念でチームメンバーをモデル化しております。

Cc947716.architectway05_fig5(ja-jp,MSDN.10).gif

Cc947716.architectway05_fig6(ja-jp,MSDN.10).gif

ロール 担当範囲
アーキテクト アプリケーションの基本構造を規定する
ビジネス アナリスト ビジネス要件を理解し、シナリオおよび QoS 要件として明確化する
プロジェクト マネージャ 全ロールを通じた連携を管理することでスケジュール・予算という制限内でプロジェクト成功させる責任を持つ。作業としてはプロジェクトのリスク管理、ステータス管理、イテレーションのプランニングなど含まれる
デベロッパー コードを実装し、単体テストなどを通じて高い品質を確保する
テスター バグの発見、レポート、テスト環境の管理
リリース マネージャー 製品リリースのプランニングおよび実行

図表. MSF チームモデル

■Visual Studio 2005 チームシステムにおけるプロジェクト管理機能

今日、プロジェクト管理者は要件から実装へとシフトしていく作業間でのギャップや立案されたスケジュールと進捗状況のギャップ、チーム内でのコラボレーションの問題といった複数の課題に直面しており、これらを全て解決することは困難です。Visual Studio 2005 Team System のうち Team Foundation が提供するプロジェクト管理機能はこういった課題をクリアするための様々な工夫を施しています。ここまで述べてきたようにベースとして SDM というモデルを共有しているため各作業における成果物のギャップはなくなり、作業のスムーズ連携が可能となります。

またスケジュール管理に関しても MSF や サードパーティ製の開発プロセスに対応したテンプレートが用意されており、管理者の判断でプロセスの選択を行うことができます。選択したプロセスに従ってテンプレートが提供され、プロセスにより規定されているワークストリームと個々のワークアイテム、マイルストーンごとに参加すべきメンバーロール、また次のマイルストーンに移行する条件などがあらかじめ設定されています。プロジェクト管理者はエクセルを利用してそれらを編集することも可能です。

また開発プロセスごとのドキュメントテンプレートが含まれており、仕様作成、リスク アセスメント、プロジェクトのプランニングなどの局面で利用されます。その他レポーティング テンプレートも用意されていてプロジェクトの進捗状況が把握できるようになっています。さらにはプロジェクト メンバー間での情報共有のためのポータル機能も提供いたします。

これら充実した機能を実現するために Visual Studio の IDE と Office、 Microsoft Project、Windows Share Point Service、SQL Server 2005 Reporting Service などと連携することによりプロジェクト管理者の負荷を大幅に軽減することが可能となります。

図. Visual Studio 2005 におけるプロジェクト管理機能
図. Visual Studio 2005 におけるプロジェクト管理機能

Cc947716.architectway05_fig8(ja-jp,MSDN.10).gif
図. Visual Studio 2005 におけるレポーティング管理機能

Cc947716.architectway05_fig9(ja-jp,MSDN.10).gif
図. Visual Studio 2005 におけるプロジェクトポータル機能

■まとめ

Microsoft Solutions Framework は Ver.4 でパッケージソフトからビジネス アプリケーションにいたるまで様々な開発プロジェクトに対応できるように進化します。そして Visual Studio 2005 という統合開発環境にテンプレートとして完全に組み込まれるので、ツールを利用することでマイクロソフトが長年の経験から構築した最新の開発プロセスに従った形でソフトウェア開発を進めることが可能となります。

詳細は下記サイトをご覧ください。
https://www.microsoft.com/japan/msdn/vstudio/teamsystem/msf/

Top of PageTop of Page