オフショア開発、すっかりメジャーになってきましたね。
ベトナムは日本からのオフショア開発で熱い日々が続いてます。(ちなみに、ベトナムは位置的に熱帯だから、そもそも暑いんですけどね!)毎日暑いか、すごく暑いしかないホーチミン、雨期は40度近いです。
さて、オフショア開発はいろいろなメリットやいい話を聞く反面、問題点もたくさん話題になりますよね。よくあるのが「外国籍SEと考えがあわない」とか「想像より品質が低い」とか。
確かに日本人の考えをそのまま海外に適用すると、「えー!!思ってたんと違う!!」になりがちです。日本でならなんとなくうまく行っている気がすることも、意思疎通が取れずにグダグダに業務が滞って遅延してしまうこともしばしば。
相手を思いやって「忖度」して、積極的に「空気を読む」のは日本人のいい面であり、同時によくない面でもあることが浮き彫りになるのがオフショア開発の一面なんです。では「思ってたんと違う!!」というギャップを吸収して着地させるかというと、「オフショアでのテスト」で問題を抽出するわけです。
テストで解決できるオフショア開発の3つの問題点とは?
オフショア開発でよくあがる問題点といえば、この3つ。
・開発プロセスの煩雑化
日本とオフショアの間で作業を行うため、発注から始まってどうしてもプロセスが煩雑化してしまいがちです。加えて物理的な距離があるため、進捗内容を的確に把握できないと開発がブラックボックスになってしまいます。
・要件や仕様統一の困難性
言語が異なることから、日本側の要件を一旦現地向けに落し込み、仕様を作らねばなりません。しかし詳細な要求仕様書を作成すると、発注側の作業量が大幅に増えてコストの増加に直結します。かといってオフショア側に解釈を委ねると、理解不足や情報共有の不足から、要求が反映されない成果物が納品されてしまうこともあります。
・思考法や品質への意識の違い
国民性の違いもあり物事、特に仕事に関する考え方は全く違います。自主的に少しぐらいの残業をしてくれても…と思っても、基本的に定時で帰ってしまう人が多いです。。もちろん業務上必要であり、指示をすれば応じてくれますが、残業に対する考え方が日本人とは根本的に違うのです。
また、指示にないことを「良かれと思って」先に手を回すこともあまりありません。
そして手抜きや適当というわけではなく、品質に対する意識も異なります。この品質への温度差を解消できないと、そのまま進行の遅延や品質などに反映されてしまいます。
これらの問題はオフショアのメッカが中国だった頃から言われていることで、ベトナムに限らず、オフショア開発ではもはや付き物です。オフショアは日本の延長の下請けではなく、文化も人種も時差も異なる海外で行われているという点を日本側が上手く解消しきれていないことが、最終的に問題点として顕在化して浮上しているわけです。どの問題も、いったん顕在化すると最悪開発がストップしてしまい、業務効率を大幅に落としてしまいます。これを解決するのが、オフショアでのテストです。
オフショアでのテストは現地で行うため、物理的な距離によって起きる進捗管理の問題を解決し、現在開発プロセスで発生している問題を摘出しやすいのです。
さらに言語も現地なので特に問題にならず、ブリッジSEとのコミュニケーションによって情報不足を補い、開発に発生している要件とのズレなどを早期に発見できます。そしてなにより、品質の向上には大きく寄与します。発注者の要求水準に到達しているのか確認するには、テストは欠かせません。
これらのテストは最終的に、オフショア活用における課題点も摘出し、ブラッシュアップすることにもつながります。浮上してきた問題点は長期的に見て、今後のオフショア開発における改善点でもあるわけです。どのような点を改善すればより効率化されるのか、可視化されるわけです。
的確で素早い課題抽出を考える場合、圧倒的にオフショア先でテストをしたほうがいい理由を改めて挙げていきましょう。
オフショア先でテストをしたほうがいい3つの理由
メリット① 時差や距離的な問題を解決しやすい
なんといってもこの点は圧倒的なメリットです。たった2~3時間の違いでも、業務の効率を考えると時差は大きなロスになります。すぐに対処するべき不具合が摘出されても、日本は終業後であったり、逆に現地はまだ始業前だったりと、時差問題はシンプルかつ解消しにくい問題点です。その点、現地であれば時差はありません。そして距離の問題もないので、開発現場がブラックボックス化せず、コミュケーションの不足も起きにくいのです。
メリット② 言語的・文化的な違いから起きる齟齬を埋めやすい
どうしても言語的・文化的に発生する考え方の違いは簡単には解消できません。「日本的」な要求は、オフショアでは通用しないものも多いのです。また、考え方の違いから「問題が起きやすい部分」が違うことに気付かず、問題が大きくなってから気付くパターンも少なくありません。
オフショアでのテストの場合、テストエンジニアは現地のエンジニアです。すでに現地向けに翻訳・調整された仕様書を元にテストを行い、開発エンジニアとは別の視点でプロダクトに取り組むため、開発時に発生した言語的・文化的な違いから起きる齟齬を埋めることができます。余談ですが、更に弊社の場合は、
日本語ができるベトナム人テストエンジニアと日本人スタッフがいるため、日本語の仕様書を直接インプットにすることができます (笑)
メリット③ 人材が豊富で第三者検証の人的リソースが確保しやすい
ベトナムではIT人材育成を国家プロジェクトとして推進しています。
250校を超える大学でのIT関連学科の新増設や職業訓練学校におけるIT関連コースの充実を始めとして、大学、高等専門学校、専門学校などの教育機関でITエンジニア教育を強化しており、若く優秀で順調に経験を積んでいる人材が豊富に市場に流入しています。そのため、第三者検証を行うための優秀な人的リソースを潤沢に確保しやすいという大きなメリットがあります。
オフショアでのテストはどの開発形式に対しても相性がいい
では、オフショアでのテストはどんな状況に向いているのでしょうか?オフショアで開発を行う場合、テストも全てオフショアで行うほうが効率は向上します。
しっかりとしたオフショアでのテストは、ウォーターフォールでもアジャイルでも、開発形式を問わず相性がいい万能選手なのです。というのも、オフショアでのテストは「オフショアでやる」という点を除けば、内容は日本と変わりません。
どちらの開発形式でも、現地に信頼できるテスト会社との関係を構築していれば、安定した開発が行なえます。つまり、仕様を理解してテストが行える技術力を有するテスト会社を確保することは、オフショア開発にとっては大切な課題と言えます。
開発形式を問わず、オフショアにテスト工程を置くことのメリットは、開発の効率を引き上げる大切な要因でもあります。テストの効率が向上することによって、遅延しがちな開発期間をできるだけ予定通りに進行させ、相互の考えをすり合わせて品質の向上につなげることで、問題点をすばやく抽出して解決し、プロジェクトの炎上を事前に回避できるのです。
まとめ
オフショアという単語は、どうしても「品質が悪い」「なにかと遅い」というイメージを持ってしまいがちです。しかし、その問題の根本は、海外と日本での考え方の違いにあり前述の点を踏まえていれば、高い品質と効率を引き出すことができます。
そのキーになるのがオフショアでのテストです。
テストを含めてオフショアで開発を進めることで、現地で完結できるので効率的・対応の状況の可視化・人的リソースを確保しやすいため、安定したプロジェクト進行ができるといったことがメリットです。スピード感あるオフショア開発を進め、業務効率化するには、テスト工程もオフショア先で実施することが大切です。