オフショア開発の進め方:アジャイル型か?ウォーターフォール型か?

post detail img 1

オフショア開発のプロジェクトを進めるにあたり、その開発スタイルとして「アジャイル型を取るか、ウォーターフォール型を取るか」という点は、多くの担当者が迷ってしまうポイントなのではないでしょうか。

小さなサイクルを繰り返すアジャイル型と、計画に従って大きな流れで進めていくウォーターフォール型では、それぞれ特徴が異なり、「オフショア開発にはどちらが向いているのか」を把握していなければ、実際の開発の際に迷ってしまうこともあるはずです。

そこで今回は、アジャイル型とウォーターフォール型という二つの開発手法について、それぞれメリットとデメリットをあげつつ、どちらがオフショア開発に向いているのかを検証していきたいと思います。
効果的な開発手法の選択が、プロジェクト全体の効率と質に関わってくることもありますので、ぜひこの検証を参考にしてみてください!

アジャイル型のメリット

まずアジャイル型で行う開発のメリットとしてあげられるのは、柔軟な修正や仕様変更が行えるという点でしょう。
特に、モバイルアプリやtoC向けのプロダクトを開発する際には、ユーザーのニーズの変化や市場の変化に対して素早く対応することが求められるので、アジャイル型による細かいPDCAと開発が効果を発揮するはずです。

また、一度不具合が見つかっても出戻りが少なく、全体として納期も短めに設定できるという点で、無駄なコストを使うことなく効率的に開発を進めることができるという点も大きなメリットの一つです。
コストパフォーマンスが重要なオフショア開発にとっては、このような二つの観点は非常に重要だと言えますよね。

アジャイル型のデメリット

一方で、オフショア開発におけるアジャイル型のデメリットとしては、コミュニケーションが多くなってしまうため、進捗状況の把握が難しくなってしまったり、方向性や指示に齟齬が生まれやすくなってしまったりするという点があります。

アジャイル型の開発では、現場の判断をベースにした細かい修正が大きなカギとなりますが、それを可能にするためには綿密で密度の濃いコミュニケーションが必要であるため、言語も違い、距離も離れているオフショア開発では、それをスムーズに遂行していくことが難しいのです。
これを克服するためには、発注側と現場側にそれぞれ意思決定者を置き、その二人が綿密にコミュニケーションをとることで、意思決定と開発管理を迅速かつ丁寧に行う必要があるでしょう。

ウォータフォール型のメリット

ウォーターフォール型で開発をする際のメリットとしては、当初想定していた仕様や計画から大きな変更がないため、計画を立てることが比較的容易であり、進捗管理もやりやすいという点があげられます。

特にオフショア開発においては、スケジュール管理が大きな難点の一つであるため、全体像を見据えた上で進捗を見ることができるのは、大きなメリットの一つとなるはずです。

また、仕様書からの修正や変更も少ないため、コミュニケーションコストがそこまでかからないということも一つのメリットかもしれません。
オフショア開発のコミュニケーションは、なかなか難しい部分もあるため、それを必要最低限に留められるということは、結果的にプロジェクトの成功確率を上げることに繋がることとなるのです。

ウォーターフォール型のデメリット

一方で、ウォーターフォール型のデメリットとしては、仕様書からの変更や修正を柔軟に出来ないことと、不具合が見つかった時のダメージが大きいということがあげられます。

toB向けや社内システムの場合はそこまで問題とならないかもしれませんが、デザインや機能を変更する必要が出てきてしまった際に、計画を一から変更する必要があるため、そのコストが非常に大きくなってしまうのです。

また、不具合が見つかった場合は、全ての作業を一度ストップして前の段階に戻る必要があるなど、そのコストも非常に大きいものでしょう。
アジャイル型のように、細かいサイクルでPDCAを回すことがないので、気付いた時には後戻りできないような状態だったというダメージを受けることもあるのが、このウォーターフォール型のデメリットと言えるかもしれませんね。

それぞれの特徴に合わせた開発手法を!

以上が、オフショア開発におけるアジャイル型とウォーターフォール型、それぞれのメリットとデメリットの紹介となります。
両者とも一長一短であり、開発したいアウトプットの性質や、企業が重視する価値観によって、どちらを選ぶか決まる部分が多いと言えるかもしれませんね。

これまでは、ウォーターフォール型が選ばれることも多かったオフショア開発ですが、アジャイル型での開発も近年では主流となっていますので、開発企業と相談をしつつ、あなたのプロジェクトにあった開発手法を選んで、開発を成功させてくださいね!

Related Posts