反復型開発とは?
反復型開発とはどのような開発手法なのか見ていきましょう。
一連の工程を反復する開発手法
分析→要件定義→設計→実装→テストといった一連の工程を繰り返し行います。プロジェクトをいくつかのフェーズに区切り、各フェーズで必要な作業を重点的に行って段階的にシステムを完成させる手法です。
また開発を行う際にネックとなるようなリスクがある場合に適した開発手法です。リスクを考慮したうえでプロトタイプを作成し、開発に臨みます。
反復型開発は「計画」を、アジャイル開発は「価値」を重視
反復型開発ではプロジェクトの各フェーズにおいて作業計画を作成し、何よりも計画が重視されます。各フェーズを1つのプロジェクトと見なし、計画を管理しながら開発を進めるのです。そして各工程ではプロトタイプを作成します。
開発上のリスクと成り得る技術を用いてプロトタイプを作ることでリスクを明確化でき、その軽減を図ることが可能です。これにより開発を阻害するリスクを最小限に留められ、計画どおりに開発を進めることができます。
一方、アジャイル開発では開発により生み出されるソフトウェアに価値を置きます。反復型開発よりも反復期間が短く、プロジェクト遅延防止のため計画よりも臨機応変な対応が重視されます。
反復型開発のメリット
各工程を重視する反復型開発ですが、どのようなメリットがあるのでしょうか。反復型開発のメリットを3つ見ていきましょう。
短期間で開発できる
反復型開発では各工程で要件定義~テストの工程を反復して行うため、全ての要件が決定していなくても開発に着手できます。また各工程でシステムを完成させるため、問題が発生しても処理にかかる時間を最小限に留めることが可能です。
全体的に見ても開発にかかる日数が少なくなり、プロジェクトの短期開発化につながります。
リスクがあっても早期に対応できる
反復型開発では各工程で設計やテストを行うため、ミスや問題に気付きやすく迅速に処理できます。リスクをはらむプロトタイプであっても、リスクはある程度予測できているため処理や手直しに時間がかかりません。
反復型開発手法はリスクヘッジにつながり、問題への早期対応を実現します。
仕様の変更に強い
他の開発手法では最終工程のテストでの要件や仕様変更は難しいです。もし作業の手戻りが発生する場合、時間的ロスやコストの増加につながります。
反復型開発では各工程でテストまで行うため、システムの不具合などに気付きやすいです。発注者側はシステムの開発過程を見れるため必要な要件がわかりやすく、要求を伝えやすいでしょう。
反復型開発のデメリット
反復型開発では各工程で要件定義や仕様変更を行うため、機能に必要な要件が明確化しづらいです。何度も要件定義を行うため、本当に必要な要件を見極めることができません。そして各段階でテストを行うため、最終的なシステムの全体像が把握しにくいこともあります。
また、機能追加や仕様変更のタイミングでテストを行いますが、システム全体のテストを行う工程がありません。そのため、システムの最終的な評価が行えず、必要な要件が漏れていることに後日気付く可能性があります。
反復型開発を成功させるポイント
反復型開発を成功させるためには、プロジェクトメンバーがノウハウを理解している必要があります。
まず、規模の小さいプロジェクトに導入してノウハウの共有を図りましょう。反復型開発の経験者が増えれば、規模の大きなプロジェクトにも導入できます。急に大規模プロジェクトに導入しようとしても、ノウハウが共有できず実施は厳しいです。
そして、開発スケジュールに注意しましょう。まず、システムの完成日をあらかじめ設定し、ユーザーの要件を基にユースケースを作成します。それを基に各工程に必要な期間をメンバーと話し合い、必要な作業をメンバーに割り振ります。
メンバーも納得する期間であれば、無理のない反復型開発を行えるでしょう。
反復型開発の特徴を押さえて、成功させよう!
開発における一連の工程を反復する反復型開発は、以下のメリットがあります。
- ■短期開発が可能
- ■リスクへの迅速な対応
- ■仕様変更に強い
しかし、必要な要件を決めづらい点や、システム全体のテスト工程がない点に注意しましょう。反復型開発を実践する場合、小規模なプロジェクトから始めましょう。そして各工程期間をメンバーと話し合うことで、成功につながります。
以上の特徴を押さえ、反復型開発を導入しましょう。