「オフショア開発に興味はあるが、品質が心配」
「オフショア開発で品質低下を防ぐポイントを知りたい」
今回は、オフショア開発の品質面で疑問や不安をお持ちの方に向けて、品質問題をテーマに記事をお届けします。
オフショア開発で起こりうる品質課題をまとめました。また、なぜ品質低下が起きるのか原因を徹底追求します。
後半では、品質を向上させるためのポイントも紹介します。プロジェクトを成功に導くために、ぜひ参考にしてください。
島添 彰
合同会社Solashi Japan 代表取締役。サントリーにて社内向けシステムの開発・運用に携わる。Yper株式会社を創業し、CTO・CPOとしてプロダクトの立ち上げ・グロースに従事。
品質管理はオフショア開発の課題の1つ
(出典:オフショア開発白書(2023年版)│オフショア開発.com)
「オフショア開発白書(2023年版)」にまとめられたアンケート結果によると、発注側が感じるオフショア開発会社の課題で、もっとも多い回答が「コミュニケーション力」でした。その次に「品質管理」がランクインしています。
前年のアンケート結果と比較すると、品質管理を課題として回答する数は減少しているようです。オフショア開発会社の品質は改善傾向にあり、今後も品質の向上が期待できます。
しかし、品質は少しずつよくなってきているものの、品質管理に課題を感じている発注者は少なくないのが現状です。
(出典:オフショア開発白書(2023年版)│オフショア開発.com)
一方、受注側は品質をどのように捉えているのでしょうか。上の図は、オフショア開発会社が考える自社の強みと弱みを尋ねたアンケート結果です。
これを見ると「品質管理」や「コミュニケーション力」を自社の強みと捉えている会社が多いと分かります。品質管理・コミュニケーション力は発注側が課題に挙げていた項目です。
発注側と受注側で認識にギャップがあることから、オフショア開発では日本の発注者が品質管理を問題視していると考えられます。
オフショア開発で起こりうる品質低下の問題
品質管理がおろそかになることで、具体的にどのような品質低下を招くのかを以下にまとめました。
- 可読性の低いソースコード
- テストで頻発する不具合
- 想定通りに動かないプログラム
- 日本では馴染みがないUX・UIデザイン
可読性の低いソースコード
適切な品質管理がおこなわれていないと、可読性の低いソースコードを見落とす可能性があります。
ソースコードとは、プログラムが仕様書通りに動くよう、処理内容を書いたテキストファイルのことです。
オフショア開発では、発注会社やプロジェクトマネージャー(以下、PM)が作成した仕様書をもとに、受注会社のエンジニアがソースコードを書いていきます。
ソースコードの可読性が低くても、システム自体は動くかもしれません。しかし、ソースコードを書いた本人以外が理解するには時間がかかります。ソースコードの目的や処理の流れを把握するのも困難です。
そのため、以下のようなトラブルに発展する可能性があります。
- バグが混入しやすくなる
- バグの原因特定に時間がかかる
- 改修に時間がかかる
また、ソースコードの可読性が低いことにより、本来必要のない共有や伝達にリソースが割かれるリスクもあるでしょう。
テストで頻発する不具合
テストの段階で不具合が頻発するケースもあります。
- 何度もソフトウェアテストを繰り返しているが、不具合が治らない
- テスト工程に進んでから手戻りが多くなる
- プログラムの改修で別のプログラムに影響が出てしまい、修正前よりも品質が低下する
このような不具合が頻発すれば改修に時間と手間を取られ、リソース不足や現場のエンジニアのモチベーション低下につながるおそれがあります。場合によっては納期やリリースが遅れることもあるでしょう。
想定通りに動かないプログラム
プログラムが想定通りに動かないトラブルも起こりがちです。システム開発では、要件定義や仕様書の内容をもとに開発を進めていきます。
これらの内容が開発チームへ正確に伝わっていないと、設計や実装がうまく進まず、成果物が正常に作動しません。
システム開発の業界では「プログラムは思った通りに動かない。書いた通りに動く」と言われることがあります。まさに想定通りにプログラムが動かないことが問題として起こりえます。
日本では馴染みがないUX・UIデザイン
日本では馴染みがないUI(ユーザーエクスペリエンス)やUX(ユーザーインターフェイス)のデザインの問題も、オフショア開発の品質低下で起こります。
成果物を使用する際、UIは「見やすさ」、UXは「使いやすさ」に影響します。UIは、レイアウトや文字サイズ、配色、フォント、画像、ボタンなど見た目の要素です。
UXは、申し込みや購入など、ユーザーがゴールを達成する過程で得られる体験価値のことです。
UX・UIデザインがよくなければ、「成果物のデザインが日本では馴染みがない」「日本人には直感的に使いづらい」などの問題が起こりえます。
オフショア開発の品質が低下する原因5つ
オフショア開発の品質が低下する、以下の原因を解説します。
- 開発プロセスの未整備
- 言語・文化の違い
- 品質管理体制の不備
- デザイン感覚の相違
- 発注会社の指示不足
5つの原因を詳しく見ていきましょう。
開発プロセスの未整備
開発プロセスが整っていないと、プロジェクトがスムーズに進まず品質低下につながります。
開発プロセスとは要求分析・要件定義から設計、コーディング、テスト、リリース、運用・保守までの一連の工程のことです
とくに上流工程の段階で、機能や構成など細部まで詰められないと、後の工程に影響を及ぼします。設計書や品質基準が定まっていないまま、開発を開始させることになります。
その結果、開発途中で仕様変更が生じ、以下のようなことが起こりえるでしょう。
- 修正に工数がかかり、納期に間に合わせるために品質が低下する
- 仕様変更による影響を把握できておらず、納品前のテストで重要な不具合が見つかる
言語・文化の違い
日本とオフショア開発諸国の言語や文化の違いも、品質低下を招きやすい原因です。
日本語は、主語を省略することが多く、主語がなくても会話は通じます。一方、主語を省かない言語を母国語に持つ外国人には、日本語が難しく感じます。
「確認しておきます」と言っても、誰が担当する作業なのかが、外国人にとっては不明確です。
また、日本人は時間に厳しい国民性と言われます。日本人の仕事意識から見ると「スケジュールや納期を守る意識が低い」と外国人に対し、感じることがあるかもしれません。
このような言語や文化の違いから、認識の齟齬が生まれ、品質に影響を及ぼす可能性があります。
品質管理体制の不備
品質管理体制が整っていないと、品質低下のリスクが高まります。
品質管理体制とは、設計・実装・テストの各工程で品質を評価・改善する取り組み体制のことです。
各工程でレビューや単体テスト、結合テスト、総合テストを実施します。各テストは、テストの内容や環境、結果をまとめたテスト仕様書に基づいておこなわれます。
品質管理では、プロジェクトチームの一人ひとりが問題意識を持って、品質の担保を図ることが大切です。
この体制が整ってなければ、以下のような問題に発展し、品質低下を招きます。
- トラブルがあってもすぐに報告されない
- 過去のテスト仕様書を流用して、テスト工程に漏れが見つかる
- 開発エンジニアとQA(Quality Assurance)エンジニアとの間で連携が取れず衝突する
デザイン感覚の相違
デザイン感覚の違いが、オフショア開発の品質低下を招きます。
デザイン感覚とは「カッコいい」「お洒落」「分かりやすい」「便利」など、見た目や使いやすさに対する感覚やセンスのことです。
このようなデザイン感覚は、日本国内でも個人差はありますが、国によっても異なることがあります。
たとえば、ヘルスケア事業のサービスで健康的なデザインを作りたい場合、健康から想起される色やイメージは、以下の図のように国ごとで違います。
「健康」から想起されるカラーの国別特徴
- <日本>陽気な色合い…オレンジ・コーラルピンクなど
- <タイ>清潔感のある色合い…ホワイト
- <中国>自然な色合い…グリーン・イエローグリーン
- <ベトナム>力強い色合い…レッド・ブラックなど
デザイン感覚の違いから、期待通りのデザインに仕上がらないことがあります。
具体的なサンプルを提示したり、使用する色やフォントまで明確に指示したりすることで、オフショア開発会社との間でイメージをすり合わせることが大切です。
発注会社の指示不足
発注会社の指示不足も、品質低下を引き起こす要因です。
日本人は曖昧な表現を好んで使います。その場の雰囲気を重んじたハイコンテクストな文化も、日本独自のコミュニケーションの特徴です。
細かく書かれていない内容でも、現場のエンジニアが行間を読んで対応してくれるかもしれません。
ところが、日本人同士のやり取りのような感覚で、オフショア開発諸国のチームメンバーとやり取りをしても、うまく伝わりません。
- 意図が伝わらず、期待値からずれた成果物が納品される
- 指示が不明確で、求める品質レベルとは乖離している
このような状況になって初めて指示が伝わっていないことに気づくケースもあります。
「この工程を終えたら動作確認をする」「不備があればどう対処すべきか」など、明確な指示出しが、オフショア開発では求められます。
オフショア開発で品質を向上させる4つのコツ
ここからは、オフショア開発で品質を向上させる4つのコツを紹介します。
- 求める品質を明確に指示する
- 現場と積極的にコミュニケーションを取る
- 最適な開発プロセスを導入する
- 品質管理体制を強化する
求める品質を明確に指示する
求める品質を明確に指示することが大切です。具体的には、以下のようなポイントを心がけるようにします。
- 数値化する
- 図やグラフなどを使って可視化する
- 仕様書は細かく記入する
- フィードバックを具体的におこなう
先に触れた通り、日本と海外では言語や文化が大きく異なることがあります。さらにデザイン感覚が違うことにも配慮しなければなりません。
「指示したつもり」では通用しないことを前提に、明確な指示をし、相手が理解しているか確認も徹底しましょう。
現場と積極的にコミュニケーションを取る
プロジェクトを円滑に進めるには、オフショア開発会社との積極的なコミュニケーションが欠かせません。
必要最低限の連絡だけでなく、雑談を交えた会話で現場担当者との距離が縮まるよう働きかけることもポイントです。フィードバックの際も、一方的な投げかけに終始せず、双方向のコミュニケーションを心がけましょう。
信頼関係が構築できれば、トラブルの前段階で現場担当者から相談を持ちかけられるかもしれません。そうすることで未然に品質低下を回避できるようになります。また、品質改善のための議論もしやすくなります。
現地に赴いて直接会うのが難しい場合が、Web会議ツールやチャットツールを使い、コミュニケーションを取りましょう。
最適な開発プロセスを導入する
品質を向上するために、最適な開発プロセスを導入しましょう。実際の開発手順と合っているか、無理・無駄・ムラがなく開発を進められるかが重要なポイントです。
システム開発やソフトウェア開発には、いくつかの種類があり、これまでオフショア開発で採用されてきたのは「ウォーターフォール開発」と呼ばれる手法です。
仕様を先に決めてから、各工程を順序通りに開発をおこないます。管理がしやすい反面、不具合が発生すると次に進めないのがデメリットです。
最近はプロトタイプをリリースしてから品質改善・機能拡張をおこなう「アジャイル開発」が注目を集めています。
アジャイル開発では開発中でも、段階的に機能ごとのテストや評価ができます。
システム開発会社と意見を交わしながら、反映を繰り返せる点がメリットです。
品質管理体制を強化する
自社に適した開発プロセスを検討し、導入をしましょう。
品質管理体制の強化も重要です。開発チームと品質管理チームが連携しやすい環境を整えましょう。
たとえば、品質管理を担当するQAエンジニアには、上流工程から参加してもらうことが効果的です。要件を満たしたテスト方針書の策定やテストコードの設計ができるようになります。
品質管理体制を強化することで、各工程で品質基準を遵守し、定めた品質指標値や品質目標も達成しやすくなります。
また、経験豊富なシニアQAがいれば、プロダクトオーナーやPMと相談しながら、最適な投資対効果を企図したテストプロセスの構築も可能です。
高品質のオフショア開発ならSolashiへご相談を
高品質のオフショア開発をご希望なら、コストパフォーマンスが高く、スムーズに依頼できるベトナムのシステム開発会社「Solashi Co., Ltd」へご相談ください。
弊社には、ブロックチェーンやAIなどの先端技術に精通したエンジニアが多く在籍しています。また、ラボ型開発で柔軟に対応できるほか、最近主流のアジャイル開発にも対応が可能です。
また、日本語が堪能なブリッジSEも開発をサポートし、現地のエンジニアに対して希望の詳細や細やかな指示を翻訳して伝達します。言葉の違いによるギャップを感じずに、安心してご依頼いただけます。
品質管理体制の整ったオフショア開発会社を探している方は、ぜひ「Solashi Co., Ltd」までお問い合わせください。
島添 彰
合同会社Solashi Japan代表。1989年4月生まれ、福岡県出身。大阪府立大学大学院情報数理科学専攻修了。2014年サントリーホールディングスのIT機能をもつ「サントリーシステムテクノロジー株式会社」に入社。自動販売機の配送管理や効率化、販売管理システムの開発から運用、導入まで広く担当する。2017年にYper株式会社を創業、同社のCTO・CPOに就任。アプリ連動型の置き配バッグ「OKIPPA(オキッパ)」の立ち上げ・プロダクトのグロースに携わる。東洋経済社の名物企画「すごいベンチャー100」、Forbes誌による「Forbes 30 Under 30 Asia 2019」に選出される。