自社に最適なソフトウェア開発プロセスの検討ポイントは「反復」

更新日:2017年06月21日 | 公開日:2016年10月11日

ソフトウェア開発では、「要求定義」「要件定義」からはじまり「外部設計」「内部設計」を行うといった、最初にキッチリした仕様をまとめて一気にゴールを目指すウォーターフォール型開発から、何度も小さなリリースを繰り返すアジャイル開発へとシフトしてきつつあります。変化の早い市場環境では、ウォーターフォール型ではなかなか対応しにくいというのがその背景にあります。

ただし、何度もテストを繰り返すという意味では、ウォーターフォール型開発の進化系である「プロトタイピング型開発モデル」や「スパイラル型開発モデル」も、テストを含めた作業を繰り返します。

この記事では、混乱しがちな「反復型開発」についてそのポイントを整理します。

ウォーターフォール型ソフトウェア開発での「反復」の定義とは

パソコン

ウォーターフォール型ソフトウェア開発での「反復」という言葉は、通常下記のように理解されています。

つまり、最初にソフトウェア開発のゴールをきちんと定義して、「要求定義」「要件定義」などのビジネスモデリングをすませ、「外部設計」「内部設計」といった分析と実装を行います。そして、このプロセスを繰り返すというわけですので、全体としてはウォーターフォール型開発をベースとしながらも、途中の工程の一部に「繰り返し」の要素を入れると理解できるでしょう。

図にすると、このような形になります。

アジャイルというと反射的に「イテレーション」「反復」ということがば浮かぶので、「反復型開発」とはアジャイル開発の専売特許のように思われがちですが、実はアジャイルと真逆のウォーターフォール型開発にも反復はあるのです。

アジャイル型ソフトウェア開発での「反復」の定義を確認しよう

キーボードを叩く

次に、アジャイルでの「反復」の定義ですが、これは通常下記のように理解されています。

ウォーターフォール型開発の中での「反復」は、最初にソフトウェア開発のゴールをきちんと定義した中での反復でしたが、アジャイルでは、ここに述べられているように「契約よりも価値を重視」します。開発プロセスの全体像は最小限の定義にとどめ、計画の達成よりもどんな価値を実現するかを優先します。つまりアジャイル型開発での「反復」は、計画を正確に達成するためにではなく、ソフトウェア開発でより高い価値を実現するために行うということです。

ここで「価値」というのは、もっと分かりやすく「費用対効果」であったり「売上増加」であったり「効率アップ」といった言葉で置き換えても良いでしょう。つまり、最初のソフトウェア開発計画を達成すること自体が開発の自己目的になってしまわないように、途中途中で、「本当にこの開発プロジェクトでできるソフトウェアは費用対効果があるのか?」とか「本当にこの開発プロジェクトでできるソフトウェアは売上増加につながるのか?」「本当にこの開発プロジェクトでできるソフトウェアは効率アップが達成できるのか?」といった、ソフトウェア開発の価値そのものを繰り返し検証する、というところにアジャイル型開発での「反復」の意義はあるのです。

【まとめ】計画の「達成」か「価値」を重視するのか見極めが必要

以上、ソフトウェア開発のプロセスでよく出てくる「反復」という言葉が、伝統的なウォーターフォール型開発でどういう意味を持つのか、また、最近主流になりつつあるアジャイル型開発でどのような意味を持つのかについて整理しました。

「反復」はアジャイル型開発の専売特許ではなく、どちらもタイプのソフトウェア開発プロセスでも「反復」は重要な事がお分かりいただけたと思います。その違いは「計画の達成」を重視するのか、「価値」の実現を重視するのかにあるというところがポイントですので、今目の前にある自社の案件はどちらのタイプなのかをしっかり見極めて、最適な開発手法を提供してくれる外注先を選びましょう。

日本最大級の発注業者比較サイト『アイミツ』ではシステム構築に関する専門知識を持ったコンシェルジュが、信頼のおける業者を完全無料で紹介することができます。

まずはお気軽にお問い合わせください。すぐれたコンシェルジュが、あなたの会社に合った企業選びを全力でお手伝いさせていただきます。

見積もり、取ってますか?

発注をする際に最も大切なことは適正価格を知ることです。
3~4社から見積もりを取ることで、
発注への納得度を高めることができます。

コンシェルジュ

発注は時間も手間もかかりますよね?

コンシェルジュが解決します!

コンシェルジュに相談、あなたにあった業者を提案、発注の手間を削減!

完全無料

まずはお気軽にご相談ください