オフショア開発の課題に対する「オフショアテスト」というソリューション

オフショア開発の課題に対する「オフショアテスト」というソリューション

ビジネスから日常生活まで、あらゆる領域でITニーズが増加する中、特に国内において顕著となっているITリソース不足を解消する手段として、東南アジアを中心とするオフショア開発に対する注目はますます高まっています。

オフショア開発には主にリソースやコスト面でのメリットがある一方で、言語や文化などのギャップに起因して様々な課題が存在します。
こちらの記事では、オフショア開発において特によくみられる課題として2つの課題を取り上げ、それらに対してオフショアでのテストが有効なソリューションとなることについてその理由を交えて紹介いたします。

オフショア開発における2つの大きな課題

①開発のブラックボックス化

オフショア開発においては日本と海外のオフショア拠点と地理的・時間的に隔たった空間でそれぞれの業務を行うため、どうしても開発の実態が日本の発注側から見えにくいという課題があります。
加えて国をまたいだ言語や文化、商習慣といったギャップにより、さらに輪をかけて状況の把握を難しくしています。

開発がブラックボックス化することによって「開発の実際の進捗が見えない」「品質の状態がわからない」といった事態が発生し、テストを実施する後工程においてはじめて問題が露見。
開発が完了していると認識していた機能が実は未完成だった、といった開発スケジュールの遅延や、品質が求める水準に達していないことが発覚し、手戻りやそれに伴うコスト超過が発生してしまう、というのはオフショア開発におけるありがちな失敗事例です。

またオフショア開発会社にテストまで含めて一括で発注をしているケースも多く、その場合開発だけでなくテストまでもがブラックボックス化し、最悪の場合テストの最終工程である発注側の受け入れテストにおいて全ての問題が発覚することもあります。
問題の発覚が遅れれば遅れるほど手戻りや修正コストが大きくなるため、可能な限りブラックボックス化を防ぎ、少しでも早い段階で事態を正確に把握して手を打つことが、オフショア開発プロジェクトにおいては特に重要となります。

②求める品質レベルとの乖離が発生しやすい

オフショア開発においては、基本的に日本側の要件をオフショア開発先の言語に翻訳し、それをもとに現地で開発を進めるという形を取ります。
日本側で作成したドキュメント自体に記載の曖昧さやロジックの矛盾が含まれていたり、あるいは翻訳の過程で誤った内容に変換されてしまうこともあり、それらが原因となって仕様自体に欠陥が生じることがあります。
仕様バグの発生はそのまま実装工程での不具合の作りこみにつながり、品質水準の低下原因の1つとなります。

また品質に対する意識の違いや、仕様に対する認識齟齬なども品質に影響を与える要因となります。
いずれの場合においても、早期に品質のレベルを把握した上で、求めるレベルとのギャップがあれば品質を引き上げるアプローチをとることが重要です。

これらのオフショア開発課題を解決する上で有効なのが、オフショアでのテストです。
より正確に言えば、「オフショア開発と同じ国にテストチームを組織し、第三者検証を行う」ということです。
なぜそれが有効なのか、その理由について以下で紹介いたします。

オフショア先でのテスト(第三者検証)がオフショア開発において有効な理由

テスト(第三者検証)をオフショア開発と同じ国で行うことで、以下のようなメリットがあります。

①開発状況の実態の把握が容易になる

上でも述べた通り、オフショア開発における大きな課題は両国間のギャップによる開発のブラックボックス化及びそれを通じた実態把握の難しさにあります。

開発において「問題が発生しない」ということは、オフショア開発かどうかを問わず基本的にはあり得ませんので、如何にそれを早く検知し影響が軽微なうちに対応するか、あるいはその発生原因を如何に事前につぶせるか、再発を防止できるかが安定的なプロジェクト運用において非常に重要となります。

そのため、開発のプロセスや状況、開発されているものの品質レベルを管理側で正確に把握することが極めて重要ですが、そこで有効なアプローチとなるのが現地にテストチームを持つことです。
現地のテストチームであれば開発者とのコミュニケーションをスムーズに行うことができ、より正確な実態の把握や日本側とのコミュニケーションを補完することが可能です。

また開発チームとテストチームを上流工程から並走させることで、テストチームは第三者の立場から要件との乖離や開発プロセスにおいて発生している課題を早期に発見し、プロジェクトへの影響が軽微な段階で手を打つことが可能にもなります。
テストエンジニアは開発エンジニアとは異なる視点で成果物を検証するため、開発の過程で発生した認識の齟齬を埋めやすいという利点もあります。
特に不具合を早期に検出し修正することは、スケジュールやコストの面で大きなメリットがあります。

一方で、対応が遅れてしまうとプロジェクトに大きな悪影響を及ぼす可能性があります。
たとえば、仕様書の不備に起因するバグのテスト工程以降における修正コストは、上流工程で修正を行うコストと比べ20倍~200倍にも及ぶと言われています。

バグの早期検出メリットとその方法

「バグの検出が遅れるリスク」と「バグを早期に検出するメリット」、そしてバグを早期に検出する一つの方法としての「インスペクション」についてご紹介します。

こういった理由から、いわば「お目付け役」のような形でオフショア先でテストチームを組織し参画させることで、開発の透明度を上げ日本側での管理のしやすさを大きく向上することが可能です。
なお開発チームと同じ現場にテストチームを派遣し、オンサイトにてテストを行うことでさらにこの効果は高まります。

オフショアテストの実施は品質の向上だけでなく、状況の正確な把握を助けプロジェクトの運営を円滑にし、ひいては開発の効率化にも寄与することから、とても有効な手段となります。

②テストのリソース確保が日本と比べて容易(特にベトナムの場合)

日本においては開発エンジニアと同様にテストエンジニアの需要も伸び続けていることから、リソースの確保が難しくなってきています。
一方で多くのオフショア開発国においてはテストエンジニアの人数も増加を続けており、リソース確保は比較的容易です。

特にベトナムでは高度IT人材の育成を国家プロジェクトとして推進していることもあり、第三者検証を行うための優秀な人的リソースを潤沢に確保しやすいという大きなメリットがあります。
仮に想定外の事態が発生し、テスト規模の拡大やテストスケジュールの短縮により急なテストエンジニアの増員が必要となった場合でも、スムーズに対応をしやすい環境にあります。

高い価格競争力がフォーカスされがちですが、それに加えて柔軟性や弾力性の高いテスト体制を構築しやすいということもオフショアテストの特徴です。

まとめ

開発プロジェクトにおいて、それが国内やたとえ社内であったとしても大なり小なり基本的に問題は起きるものです。
それが地理的にも文化的にも隔たったオフショア開発であれば、なおさらそのリスクは高まります。

リスクを軽減するためにはより徹底した管理が推奨されますが、それにも関わらず「開発の実態がつかめない」「どんな課題が生じているのかわからない」という状況では、一段とリスクが高い状態といえます。

それゆえに、現地のテスト会社による第三者検証を通じて早い段階で品質や状況の実態を把握することが極めて重要です。
そしてテストチームの参画タイミングが早ければ早いほど(上流であればあるほど)、開発現場とテスト現場の距離感が近ければ近いほど(オンサイトが理想)、有効に作用します。

仮に開発がブラックボックス化し実態が見えないままプロジェクトが進んでしまった場合、後工程でテストを行った際にはじめて品質課題やスケジュール遅延が露呈し、そのタイミングから対処を開始するということが起こり得ます。
その結果、大規模な手戻りの発生や修正に次ぐ修正が後から発生し、コストやスケジュールが際限なく拡大してしまい、収拾がつかなくなったというタイミングで初めて弊社にご相談を頂くというケースも少なくありません。

そういった事態を可能な限り避けて効率的に開発を進めるためにも、オフショア開発にあたって信頼できる現地のテスト会社を見つけ、発注元・オフショア開発会社・オフショアテスト会社の3社間での協力体制を確立することが、オフショア開発の成功確度を上げるための1つの重要なキーと言えるでしょう。