開発サイクル編
第11章 開発サイクルの応用
発想主導型開発サイクルは、Drop ver2.0で採用した開発サイクルである。
このサイクルの特徴は、契約主導のように開発工程の初期段階で最終ゴールを見定めないことにある。
ソフトウェアが対象とする問題領域や要求が、非常に流動的で捕らえにくい場合、すべてを初めに明確にするアプローチでは、その変化にソフトウェアの仕様が持ちこたえられなくなってしまうことがある。また、ウォータフォールのようなフェーズドアプローチをとってしまうと、せっかくの革新的アイデアをすぐに形にできず、市場を獲得するチャンスを逃してしまう恐れもある。
このようなソフトウェア開発は、革新的アイデアをベースとしたプロトタイプをできる限り早くリリースすることでユーザから要求を獲得し、さらなる発展系をプロトタイプとしてリリースしていくようなユーザ主導の開発戦略が取られるようになってきた。
このようなソフトウェア開発に対し、Drop ver1.0の契約主導型だけではよい効果を発揮することができなかった。よって、Drop ver2.0にて発想主導型開発サイクルを導入し、どちらの開発サイクルを採用するかを選択できるようにした。(*注)
図11-1 発想主導型開発サイクル
- 試作サイクル
ADG開発サイクル、ODG開発サイクルの前にあり、アイデアをソフトウェアにある程度具現化できるまでの段階を言う。
アイデアの発案者、または少人数の企画者によって「考案」「試作」「評価」を繰り返し、最終段階では、プロダクトとして成立させるための企画書が作成される。
- システム開発サイクル
アイデアを具現化した企画書と試作したソフトウェアを基に、個人の域を脱して本格的なソフトウェア開発へ進む段階。
契約主導型開発サイクルと異なる点は、ADGサイクルがスパイラルに進むことである。インターネットを有効利用してプロトタイプをリリースすることで、市場からの反応を評価し、要求事項として柔軟に反映させていく。また、場合によっては、インターネットを通じて仮想的なコミュニテイーを形成し、その中でソフトウェア開発を行うこともある。
なお、スパイラルに進める単位は、「基本機能」「パフォーマンス改善」「ユーザインタフェース強化」「コンポーネント化」「バージョンアップ」などがあり、ODGの開発サイクルはこの中のコンポーネント化を担当することになる。
- コンポーネント開発サイクル
開発中のソフトウェアのコンポーネント化を図る段階。
開発するソフトウェアのバージョンアップに時間がかかっていては致命的である。「コンポーネント化」は、システム開発者の依頼を受け、次バージョンの拡張に向けたプログラム構造改善の一環として行われる。この点が、問題領域分析当初からコンポーネント化が計画される契約主導型開発サイクルと異なる点である。これは、スパイラル開発で無秩序に作られるコードを見直し、そのコードと同等の動作を保証する再利用可能、拡張可能なコードを提供することで、将来のソフトウェア拡張に備え、再利用コンポーネントも構築していくのである。
コンポーネントはパッケージ単位でADGにリリースされ、システムにに組み込まれて動作確認が行われることになる。
注:
Drop開発自体も発想主導型開発サイクルのように作りかけの内容をインターネットにて公開することで、様々な意見を取り入れるようにしている。発想主導型開発サイクルについても電子総合研究所にて開催されたDrop勉強会に関連する「製品開発サイクル」の議論が発端となり追加することになったものである。しかしながら、Drop2.0の発想主導型開発サイクルは、まだ未熟なものである。今後、この開発サイクルを使った開発の実績を広く読者から募集しながら内容を充実させていきたい。