スケジュール管理の課題(オフショア開発 失敗あるある)

オフショア開発をしている人
・オフショアに仕事を頼むと期日通りに出来上がってこない。
・期日通りに出来上がっても、手戻りで結局遅れてしまう。
・どうやったら、期日通りに作業を終わらせることができるかな?

そんな質問について説明します。

筆者は、オフショアを活用したソフトウェア開発を

13年間続けています。

過去、スケジュール管理に関するトラブルは、

星の数ほど体験してきています。

その経験から、

オフショア開発で発生するスケジュール管理上のトラブルと、

その対処方法に関して説明したいと思います。

目次

以下が、今回の目次です。

1.スケジュール管理上の課題
2.なぜスケジュールが遅れがちになるのか?
3.日本人と海外の考え方の違いを知りましょう
4.スケジュール通りに開発を進めるためには?
5.まとめ

それでは、1つ1つ説明しますね。

1.スケジュール管理上の課題

オフショアに開発を依頼して、もっとも多いトラブルの1つが、

・スケジュール管理

です。

つまり、依頼した開発の成果物の納入が遅れることです。

もう少し詳しく説明すると、

・納入日は守るものの、制限付きでの納入となる

ということもよく発生します。

日本人にとっては、期待した成果が得られないという点で

このケースも結局のところ納入遅延と同じことです。

日本人の場合、

・「納期は絶対守る」

という前提で仕事をしますし、

そのためのスケジュール管理や、リスク管理を

徹底して実施します。

問題が発生した場合は、チーム一丸となって

問題点の対処に奔走します。

では、オフショア開発ではなぜ納期が遅れがちに

なるのでしょうか?

そのあたりを詳しく説明していこうと思います。

2.なぜスケジュールが遅れがちになるのか?

実は、日本人が開発したとしても、

もちろん様々な要因で、

遅延が発生することはよく起こります。

しかしながら、日本の請負会社の場合は、

リスク管理が徹底されているので、

問題が発生した際、すぐにエスカレーションされて

どうしても対応が難しい場合は、

発注元と協議の上事前にスケジュール調整が行われて

納入日になって遅延が発生するということはありません。

ところが、オフショアに開発を依頼した場合、

オフショア側は、課題があったとしてもギリギリまで

自分たちの力でなんとか課題の解決を試みようとします。

もちろん、それは素晴らしいことなのですが、

課題の内容によっては期日までに解決が難しい

ケースがあります。

こうなると、納入日直前になって納入日程の変更の依頼や

制限付きでの納入となる訳です。

日本人からすると、

・なんでもっと早く言わないんだ!
・早く言ってくれれば調整のしようがあるのに

と思うわけです。

こういったことが重なると、

オフショア開発では、

スケジュール管理が難しいという結論になってしまいます。

3.日本人と海外の考え方の違いを知りましょう

なぜこのような事が発生するのか?

その原因をよく考えてみましょう。

その根本的な理由は、

・仕事のやり方が違う

からです。

もう少し詳しく説明すると、

・日本の会社はチーム単位での開発
・オフショアの会社は個人単位での開発

だからです。

どういうことかというと、

たとえば、筆者の会社が開発を依頼している

オフショア(インド)の場合、

その開発スタイルは欧米に近い開発スタイルになります。

個々人の責任範囲が明確に決まっており、

課題があったとしても、

担当している個人が課題の解決に対して

責任を負う必要があります。

問題が発生した場合には、

当然チームで解決することもありますが、

エンジニアは自分で問題を解決できないと

問題解決能力がないと周りから認識されてしまうため、

極力自分で問題の解決を試みます。

個人成果主義であるオフショアでは、

能力がないと判断されれば、

ポジションの変更や最悪の場合は

首を切られてしまうことになります。

日本の会社の場合は

人と育てようという文化(今は違うかもしれませんが)なので、

個々人の能力の問題があっても

すぐに人を変更したり首を切ったりはしません。

日本の場合は、少しでも課題があれば周りと共有し、

チームで解決しようと動きます。

日本の会社の場合、個人の課題であっても

会社全体の課題と同じという考えだからです。

この考え方は、日本の場合会社間の関係でも同じです。

日本の会社は、請負会社を含めて一体となって

プロジェクトを推進しようとしますが、

オフショアの場合、個々の会社が開発に責任を持ちます。

そのため、問題がすぐにはエスカレーションされず、

最終的な成果物のスケジュールの課題となって現れてくるのです。

4.スケジュール通りに開発を進めるためには?

では、どうやってこの問題を解決するかを説明します。

この問題が発生した時に日本人がやりがちな間違いは、

・問題があれば早く連絡するように依頼する
・報連相を徹底するように依頼する

です。

気持ちは分かりますが、これでは絶対にうまくいきません。

何故かというと、

このやり方は「日本」の会社のやり方であり、

オフショアの文化に合わないからです。

開発元のやり方に合わせて欲しいという意見があるのも

理解しますが、一度身についたやり方というのは

そう簡単には変えることは出来ません。

オフショアの会社と数年に渡ってパートナーシップを

結んでいく覚悟があるなら、徐々に教育して

自身の会社のやり方を覚えてもらうのもありだとは思います。

しかしながら、最初のうちは、以下のやり方で

進めることをおすすめします。

(1)中間版を納入してもらい、こまめに仕上がりを確認する
(2)オフショアからの納入日を前倒しして設定する

オフショアで発生している課題を

レポートで報告するように依頼しても、

実態が思うように報告されないことが往々にして発生します。

なので、項(1)のように実際のモノを納入してもらい、

実物で仕上がり具合を確認するのが、

もっとも簡単で早い方法です。

日本側の手間はかかりますが、筆者の経験では、

このやり方が一番コストがかからなかった方法でした。

(2)に関しては、

オフショアからの成果物が必要となる期日を

オフショアには正確に伝えず、少し前倒して伝えます。

オフショアからの納入物に課題が見つかったとしても、

この前倒しで依頼したバッファ分で課題のリカバリを行うのです。

つまり、前もって課題が発生するリスクを

スケジュールに盛り込むわけです。

これもかなり有効な手段でした。

スケジュールがタイトな場合はバッファを取りにくいのですが、

1日でも2日でもバッファをとっておくと、

不測の事態が発生した際(大抵発生しますが)に

対処することが可能となります。

5.まとめ

それではまとめです。

今回のブログでは、

・オフショアに仕事を頼むと期日通りに出来上がってこない。
・期日通りに出来上がっても、手戻りで結局遅れてしまう。
・どうやったら、期日通りに作業を終わらせることができるかな?

といった質問について説明しました。

スケジュール管理上の課題が発生するのは、

・日本の会社とオフショアの会社との間の仕事のやり方の違い

に起因するのだと説明しました。

長期的なパートナーシップを結ぶのであれば、

最終的にはオフショア側に日本側のやり方を学んでもらうのも

良いでしょう。

しかしながら、プロジェエクト立ち上げ時期には、

オフショアとの間に考え方のギャップがあることを前提として

施策を施すのが得策です。

具体的な施策としては、

(1)中間版を納入してもらい、こまめに仕上がりを確認する
(2)オフショアからの納入日を前倒しして設定する

といった方法を活用するのが良いと思います。

日本側の手間は増えますが、多くの課題がこれで収束します。

騙されたと思って、一度試してみてください。

いかがだったでしょうか?

本ブログでは、

オフショアを活用したソフトウェア開発を成功させるためのノウハウを

今後も発信していきます。

それでは、また。

あつし