【オフショア開発失敗事例】間違った技術選定による工数増大
2022/10/21
オフショア開発の基本この失敗事例はオフショア開発会社Aで試作品開発を依頼したところ、開発者が選択したフレームワークを使用して追加開発を行う場合に工数が高くなってしまう状況が発生した失敗事例です。
失敗の解説
オフショア開発会社Aにバックオフィス業務用の法人向けのシステムの試作品の開発を依頼し、その後開発のスケジュールが遅延したため、弊社に相談した事例です。
スケジュールの遅延の程度やオフショア開発会社Aに聞き取りを行なったところ、タスクごとの開発時間に大きなずれがある事が判明しました。
機能開発にかかる時間が通常よりも多くの時間がかかっていたのです。
その原因は、Vue.jsというjava scriptフレームワークを使用し、開発を行なったことで、開発者が対応できず多くの時間がかかっていました。
確かにVue.jsの技術を使用すれば、画面表示速度を早くすることは可能です。しかし、それは多くのユーザーが同時に使うような消費者向けのシステムに向いている技術で、業務用システムのような同時接続数の少ないシステムでは選択の優先順位は低くなります。
また、Vue.jsの表示速度の改善はデータベースと関連しているため、データベースの変更が少なくないサービス初期の段階でVue.jsを導入することは開発工数が増加することも少なくありません。
今回のケースでは、スケジュール遅延を理由にオフショア開発会社Aから別のオフショア会社に変更するときに、機能追加に想定以上の見積もりになったため、発覚しました。
プロジェクトの主な問題
本プロジェクトのシステムは、バックオフィス業務用の法人向けのシステムの試作品開発でした。多くの新規サービスでは、サービスの成長戦略として、システムの試作品開発を行い、ユーザーの反応を確認しながらベータ版のリリース、製品版のリリースのように進んでいきます。
そのため、必要な要素として、安価に円滑な機能追加が重要な要素になります。
しかし、使用したVue.jsというjava scriptフレームワークは、画面表示を早くする目的で導入されていました。
サービスの状況や想定される使い方と開発内容にズレができている事が大きな原因です。
具体的な対策方法
まず他の失敗例と同じように依頼者がオフショア開発の経験が少ない場合は、日本人開発者がブリッジエンジニアとして開発チームにはいるラボ型開発を選択する事がおすすめです。
そうでなければ、技術選定はシステム開発の知見がある方にチェックしてもらい、契約段階で大まかな技術選定の認識合わせをしておく事が必要です。
その後のプロジェクトの経過
この失敗事例の対応方法としては、二つの方法がありました。
1つ目は、Vue.jsフレームワークを削除して、作り直すこと。もう1つはVue.jsを残しつつ負債として機能追加を行う事です。
Vue.jsを削除することはシステムのデータ取り扱いに関わる大改修で、プロジェクト全体の費用の1/3ほどかかる予想でした。
試作品段階で、多くの費用を追加できないとのことで、Vue.jsを残しつつ、機能追加を行うことになりました。
弊社でVue.jsに長けた開発者が在籍していたことから、オフショア開発会社Aから引き継ぎ、機能追加を行いました。