1
/
5

オフショア開発を成功させる秘訣は?○○が成功のカギ

国民性としてよく言われることですが、日本人とベトナム人は勤勉や真面目さという点で共通点が多い一方で、仕事や人生への考え方は大きく異なります。おなじ日本人同士でも地域によって習慣が違うように、国が違えば価値観が違って当たり前。

たとえば日本人もベトナム人も、世界的に見て真面目で勤勉、細かな作業も丁寧で協調性が高く、我慢強くて忍耐力があるといわれています。

一方で、日本人はとても謙虚。それが控えめで譲り合う性質に繋がっています。ベトナム人はおおらかでプライドが高く、強い上昇志向や努力家な性質を支えています。仕事に対する考え方も違い、日本人が家族の生活のために仕事を大切にするように、ベトナム人もまた家族を最優先に仕事よりも大切にしています。

日本も結構朝早くから動き始める社会ですが、ベトナムはさらに早起き。ビジネスアワーはだいたい8時から17時で、朝早かった分、午後のために昼寝をはさみます。

オフショアで開発を進める時に、この国民性の違いは良きにつけ悪しきにつけ、さまざまな場所に現れてきます。

「日本だったらこうなのに!」を言い出せばキリがないけれど、ここはベトナム。考え方や文化の違いを超えて開発を成功させる秘訣は、実はテストにあるんです。

オフショア開発におけるソフトウェアテストの位置づけ

オフショア開発では、日本と現地で文化が異なるため、いわゆる日本的な「暗黙の了解」や「であるべき」が通用しません。というのも、ベトナムは欧米の考えに近く、文書で明文化して契約する文化なのです。こればっかりは社会的な習慣の違いなので、郷に入りては郷に従え、日本のやり方を押し付けてもなじみません。

かといって、日本人が急にベトナムの働き方や考え方を取り入れるのも難しい話。この齟齬がオフショア開発の現場では、思わぬ食い違いを生むことがあります。受け入れテストの段階で「伝わっていると思った」「理解してくれてると思ったのに」「ぜんぜん違うじゃないか!」が発生する前に、「どうも食い違っているぞ?」を早期発見するのが、初期段階でのソフトウェアテストの役目でもあります。

ソフトウェアテストはもちろん文字通りのテストという大きな役割がありますが、もう一つの側面として、各テスト工程でこまめに相互の認識を確認し、発生している齟齬を早期発見して吸収する重要な意味合いも持っているのです。

・プライドが高いベトナム人エンジニアに上手に伝えるためにも重要なテスト結果

爆発的な経済成長を支えているベトナム人のプライドの高さは、時に日本的な指摘とは相容れないこともあります。

それをして「ベトナム人エンジニアは失敗を認めない!」というのは早計。客観的データと論理的な議論を好む性質が強い人が多いので、人前であれこれ指摘せず、ふたりきりの状況を作り、テストデータを元に「なにをして欲しいのか」を指示すればお互いに気持ちよく作業に取りかかれます。

テストデータはデバッグに限らず、様々な工程での作業とコミュニケーションを円滑にするための役割を果たすわけです。

オフショア開発で品質低下の原因になる3つのコミュニケーションロス

「オフショアで作るとどうしても品質がいまいち」というイメージを持つ人は未だに少なくありません。

でもその原因は「オフショアの技術力が低い」わけではなく「コミュニケーションロス」に問題があることも多いのです。

① 日本側にありがちな曖昧な要求

言語が異なるオフショアでの開発を円滑に行うためには、要件定義に対する解釈の違いや誤解が発生しないように、明確な言葉で定義して、詳細に記述する必要があります。

しかし、日本での開発を前提にした要件定義をそのまま翻訳すると、曖昧な部分が多すぎて、イメージしたとおりに伝わっていないことも少なくありません。

そしてソフトウェア品質に対する考え方の違いも、国によって意識がかなり異なります。「それくらい自分で考えて言われなくても対応しておいてよ」は、日本以外の国ではほとんど通用しないのです。

「言われたことしかやらない、気が利かない」のではなく「指示されたこと以外はやってはいけない」「契約外のことはしてはいけない」という文化の違いがあるためです。なので、やってほしいことは事前に実施計画をしっかりと立てた上で、契約条項に入れる必要があります。

日本ではほとんど意識されないJob Description(職務記述書、以下略称JD)があるため、仕事の範囲が明確に区分されているので、契約外のことを「それくらいやっといて」と指示しても通じないわけです。

② 品質に対する考え方の違い

また、日本人の考える品質とオフショアの品質で乖離があることはままあります。

どのラインを「良い品質」と考えるかは、国によって全く価値観が異なるのです。例えば日本人にとって電力の供給は日常生活の中で安定しているものです。しかし、ベトナムでは年間二桁以上の停電が起きます。そのため、自家発電機が普及しています。

このように日常に接している部分の品質が日本の当たり前、普通とは異なるため、言質基準では十分に品質が担保されていても、日本基準の品質と比較すると低い事があるわけです。

その点を十分考慮して「品質」の仕様として定義しないと、考えの違いがそのまま品質に反映されてしまいます。

ベトナム人エンジニアは向上心が強く勤勉なので、なぜ必要なのかを説明し、しっかり定義することで高い品質を目指すことは難しくありません。

③ 情報共有不足

そして一番のコミュニケーションロスの原因といえば、言語が障壁になって情報の共有が不足し、「そんな話は聞いてない」という事態に陥ってしまうことでしょう。ミーティングで出た話題もこまめに書き出して明文化し、共有しないと、伝わっていないことも多々あります。

その場で話したことは相手も理解して、その後はなにも言わずとも実施してくれると思わず、随時情報共有をしていく必要があります。

この3つの問題点から起きる品質低下を摘出し、お互いを繋ぐのがブリッジSE。双方の言葉と文化を理解した上で、全体を把握してコミュニケーションを円滑にします。

特に要件定義の翻訳については大変に工数とコストがかかるため、大手法人を始めとして業務の効率化のために現地に再設計を行う法人を設立したり、最初から現地での設計を行うため拠点進出をする企業も少なくありません。

一旦オフショアで開発が始まると、基本的に現地の言語で進みます。そのためテストのために改めて翻訳を挟むと、新しい問題の発生やコスト増加の原因にもなります。そこで現在は、言語的なコミュニケーションの壁に問題が起きないオフショアでのテストが増えています。

オフショアでのソフトウェアテスト事情は、日本とは一味違う

さて、ソフトウェアテストは実際に業務の中で「コミュニケーションロス」による品質低下を防いでコミュニケーションの円滑化に一役買っていることは理解していただけたかと思います。

ここでもう一つ、オフショアならではの事情を説明しておきましょう。

実はオフショアでは、そもそもテストをやりたがらないエンジニアが多いのです。なぜならテスト工程は開発エンジニアのJDではないためです。開発とテストをセットで受ける企業もあるにはあるのですが、実際にはテストを行っていないことも多く、テスト工程がまったく機能していないことも少なくありません。

これは前項でも説明したJDが影響しています。日本人はJDという考えが曖昧なため、開発もテストも引っ括めてやってしまうエンジニアは珍しくありません。日本での開発は、それを前提にしていることが多々あります。

しかしベトナムでは、JDに基づいて仕事の領域を明確に分担しています。そのため、開発は開発エンジニア、テストはテストエンジニアとはっきりした業務の区分があるのです。また、人材の平均年齢が若くITエンジニアが成長の過渡期にあるため、テストの知見があるエンジニアの数はまだまだ不足しています。オフショアの現場では仕様全体が分かっていて、プロジェクトに責任を持っているBSEやPMなどの層がテストを担当することがありますが、テストエンジニアではないのできちんとテストが行われていないことも少なくありません。

コミュニケーションロスによる品質低下を防ぐためには、オフショア側の視点ではなく日本側の視点でテストを行うことが重要です。また言語的にも日本語の仕様書や日本側のPMと直接コミュニケーションを取り、要件を正確に把握することが大切になります。

それによってコミュニケーションロスを早期に発見し、品質向上につなげることができるわけです。例えばSHIFT ASIAには日本語が出来るエンジニアが100人超在籍しているため、コミュニケーションロス、ミスが起きにくい言語環境を整えています。

ソフトウェアテストは日本とオフショアどちらで行うほうが良いのか

とはいえ、オフショア開発ならオフショアでのテストが絶対にベストかというと、そうでもありません。何事にもプラスとマイナスがあるように、ソフトウェアテストも日本とオフショアでそれぞれにメリット・デメリットがあります。

日本でテストを行う場合、テスト要件や計画を日本側で作成したあと、現地に合わせて落とし込みをする工数とコストは掛かりません。代わりに、単体テストから受け入れテストまですべて日本側でやる場合、時差や物理的な距離の問題でタイムラグが発生しやすく、また言語の違いから齟齬が生じる危険があります。

オフショアでテストを行う場合、テスト要件を現地に合わせて落とし込み、詳細な定義を作る必要があります。代わりに、時差と言語の壁がないオフショアでオンタイムのテストが行えるため、タイムラグもなく、言語の違いから起きる曖昧な部分の解釈違いという問題も発生しません。

日本語に長けたテスト会社が確保できている場合、オフショア開発ではオフショアでテストを行ったほうが、開発全体を見た場合のメリットは大きくなります。

まとめ

オフショアでのソフトウェアテストは、欠陥を探すという本来の役目以外に、オフショア開発が円滑に進むための大切なポイントとして機能していることがおわかりいただけたでしょうか。

国内のテストと違う要素としては「文化や考え方の違い」を吸収してコミュニケーションロスをなくしたり、日本人的な曖昧な「言わなくても分かるだろう」「自分で考えて」から生じる行き違いや大きなトラブルの種を潰していくという役目も持っているわけです。

そのためにも、上記の役目をしっかり果たすために、開発会社とテスト会社を分けた体制にすること、日本側の視点で品質担保を行えるテスト会社を選ぶことは、オフショア開発を成功させる重要なポイントと言えます。

SHIFT ASIAでは一緒に働く仲間を募集しています
1 いいね!
1 いいね!
同じタグの記事
今週のランキング