プロジェクトに適したオフショア開発チームを探していくとき、大勢の方が請負型開発(ウォーターフォール・モデル)とラボ型開発(アジャイル・モデル)の2つの開発形態を迷っているでしょう。一番適切な形態が選択できるように、これらの開発形態についてよくわかったり、そして自分のシステムの目的や状況に応じて適切な開発スタイルがよくわかった利することが必要だと思います。
では、請負型開発、ラボ型開発といえば、詳しく説明していきましょう。
請負開発は、ウォーターフォール・モデルで進めていくことが多いですが、ラボ型開発にウォーターフォール・モデルが用いられることもあります。しかし、ラボ型開発案件に多くの場合は、アジャイル・モデルで実施されています。
ウォーターフォール型は利用ユーザが明確に分かっており、業務フローも固定化されて可変しない場合(勤務管理等の社内で使う業務システムなど)には予算変更も少なく済むため有効ですが、新規事業等でターゲットユーザが不明瞭、かつビジネス環境も日々変わる不確実性の高い場合にはあまり適していません。
まず、請負型開発についてご紹介します。請負型開発、つまり、ウォーターフォール・モデルとは滝の水が上から下へ落ちるのと同じように、初期に膨大な時間をかけて、サービス開発範囲を「全て」定義してから設計、実装、最後にテスト、納品をする形態です。それぞれの工程が終わったら前の工程には戻らず次の工程に進むという開発スタイルです。
一方で、ラボ型開発、すなわちアジャイル・モデルでは、分析、設計、実装、テストを短い期間(1週間〜4週間程度)で行い、その一連のサイクルを繰り返していきます。ユーザーのための価値の高い機能から開発し、短いサイクルで動くソフトウェアを完成させます。
アジャイル型では、ビジネス環境の変動型が起こった場合や当初の想定と異なる事実が見つかった場合には、修正や仕様変更を行うことができます。また、機能の優先順位を途中で変更することになっても、アジャイル開発の場合、開発サイクルが短いためにプロジェクト全体への影響が少なくて済みます。オフショア開発で発生しやすいコミュニケーション不足の課題を避け、安定した開発を行うことが可能です。
オフショア開発の形態について検討しているなら、ぜひ参考しましょう!