前回でオフショアに関わったきっかけについて紹介したが、プロジェクトを通じて経験したことなどあれこれ書いてみるというのが今回の目的。
ちょっと本題に入る前にいろいろ能書きをしてみたいと思う。長くなったので、2回に分けて書いてみる。
2 オフショア開発の意味・効果とは(1)
ソフトウェアのオフショア開発という形態が注目されるに至った経緯、その意味や期待される効果について触れたい。
ビジネスの発展形態の中の位置づけ
もともと欧米など先進国の企業が海外進出するにあたり途上国現地に法人を作り、そこを拠点としてビジネスを展開するというのは昔からある。
最初の段階は鉱物、農産物、その他一次生産品などモノと金が流れるだけのビジネスの形態である。
この段階では主体はあくまで先進国から出向いている企業側であり、ギブアンドテイクとは言い切れない状況があった。
次に生産拠点を途上国側に展開するという段階。
この数十年間製造業などの業界で行われてきたもので、工場を現地に作り現地の人材を雇いモノを生産する。
ここでは作った製品を実際に輸送するコストが発生するため低い製造原価が前提である。
このステップで重要なのはそれまでのモノを動かすというだけでなく、生み出すプロセスが移転するという点である。
ここで労働需要が生まれ単にモノを売り買いする経済行動だけでなくノウハウという見えない価値の移転が発生する。
そしてサービスを海外拠点に移転する段階。
製品を作るというのは経済活動の中の一部でしかなく、作られたその製品が実際に人の手に渡りサービスが提供されることによって価値を生む。そしてさらなる製品の需要が喚起されるわけで、主要なソフトウェアベンダの多くも製品販売からサービス提供事業に転換するなどの歩みをみせている。
製造拠点として機能していた途上国ベンダがサービス提供の段階までをもビジネスに取り込むことが可能になると、先進国も途上国もないビジネス上対等な関係が生じることになる。このビジネス展開にはモノ作りを段階を経て得たノウハウが大いに活躍する。
21世紀の現在はこの段階が加速度的に進行している。
こうした流れの中で、ソフトウェアのビジネスは独自のポジションをとっているといえる。
ポイントは製造業が行ってきた労働拠点移転の段階からサービス拠点移転の段階に容易に移行可能な性質を持っているためだと私は考える。
生産効率、工程管理の考え方、品質管理上の特性など製造業の範疇で捉えられる特徴が多々あるものの、製造業とは異なる点がいくつかある。
- 製造に大規模な設備が不要な点
- 製品の在庫管理が不要な点
- 製品出荷に流通手段を必要としない点
また、原価はほぼ人件費であり、ラインを持たない製造工程は簡単に仕様変更に対応できる。
このような製品の性質ゆえに、製造者が自社製品を持ちサービス提供者に転身するなど事業の範囲を拡げることが比較的容易だ。
ソフトウェアのオフショア開発も例外でなく同じプロセスを歩んでいるといえる。
費用効果
エンジニア単価の引力
ソフトウェアの製造コストはほぼソフトウェアエンジニアの人件費が原価の殆どといってもよく、この製造にかかる人/月を以って開発規模が決定する。
ここでエンジニアに対する人件費が安く上がれば即ちプロジェクト全体でコスト削減の恩恵が受けられるのだろうか。
これは開発プロジェクトを管理する人にとっては重要な問題だ。
まず単純な例をあげよう。
「同じ生産性を持つエンジニアが2人いて、1ヶ月稼動する単価が片や50万、片や40万という違いがあるとする。どちらのエンジニアを雇うか?」
当然、40万円のエンジニアだろう。
単価が10万円安い雇えば企業側は月に10万円ずつのコスト削減が可能になる。
現実にこの方式が単純に適用できれば話は速い。
今やオフショア大国となったインド、中国で最初IT産業が立ち上がった頃は単価1/5とか1/3とかいうレベルから始まっている。
「国内エンジニア1人分のコストで○人が雇える」とかいう文句がよく聞かれた。
このように給与水準の低い国、地域のエンジニアを雇えば単価の面では、圧倒的にメリットが得られるのは事実だ。
費用に関していうと、これは経済の成長に伴い変動するもので、単価の上昇は遅かれ早かれやってくる。
現にオフショアの先発組ともいうべきインド・中国はすでに実績を積むに従いエンジニア1人あたりのコストは上がっている。日本国内のエンジニアと比べると、インドでほぼ同等、中国で1/2くらいにまで上昇している。後発となるヴェトナムでほぼ1/3というくらいが相場である。この点、インドでは既にメリットは単価でなくそのサービス内容・付加価値に移っていると考えるべきである。
日本ではオフショアは中国相手の方がメインで、物理的に近いことと漢字でのコミュニケーションが可能なことなどがメリットといわれている。反面、通貨である人民元の安定性に不安があり、日本という国に対しては一部に嫌悪感もあることから事業を展開する上でのリスクも懸念される。
この点、経済面の安定性には疑問が残るが、単価もまだ安く比較的親日的であるということ点がオフショア委託先としてヴェトナムが注目される所以である。
生産性の尺度
次にコストの前提となっている生産性の尺度について触れなければならない。
ここで先の質問に戻る。
「同じ生産性を持つエンジニアが2人いて、1ヶ月稼動する単価が片や50万、片や40万という違いがあるとする。どちらのエンジニアを雇うか?」
実はこの質問には問題がある。最初の前提である「同じ生産性を持つ」というところである。
質問をちょっと変えてみる。
「同じ単価のエンジニアが2人いて、1ヶ月の生産性が片や2.0ks、片や1.6ksという違いがあるとする。どちらのエンジニアを雇うか?」
私はこの質問には簡単に答えられないと考える。
なぜなら、その生産性を測る基準が一様でないために、エンジニアの価値を単純に比較ができないからである。
生産性を決めるときに重要になる経験値はその人物がそれまでこなしてきた仕事の性格、状況などに大きく影響され、奇しくも同じプロジェクトでずっと働いてきたエンジニアといえどもアウトプットが同じということも有り得ない。
また、生産性の意味するゴールは何だろうか?
ソフトウェアの世界では一定時間で生み出されるコードの量に等しいのだろうか?
部品を作って自動車など作るときには部品を大量に使用するが、使えない部品は生産した内容にはカウントされない。
同じように、ユーザの求めるソフトウェア品質をクリアできないコードはいくらあっても無意味だ。
品質を考慮した製品生産性がこの場合問題であって、単に速く沢山のコードが書けることは必要条件であっても生産性が高いことと同義にはならない点に注意すべきだ。
数々のソフトウェアの歴史が示すように、優秀なエンジニアとそうでないエンジニアとでは数倍から数十倍の生産性の開きが生じる場合がある。
しかも、その比較は単純な計算で求められない。
たとえば組み込み系システムの生産性を業務系システムにそのまま適用することはできない。
再利用可能な部品がある場合とない場合でも異なってくるし
そもそも同じ1人のエンジニアでも常に同じ生産性が保たれるわけではなく、結果だけをみてもその結果を出すまでのプロセスは人によって大きく異なる。
このように非常に捉えにくい生産性というパラメータを常に把握することは至難の技だ。
生産性を定量的に即座に提示できる企業は実際は少ないはずだというのが私の考えである。
生産性は?の疑問にすぐに答えが提示される企業は却って疑ってみる必要がある。
生産性はあくまでも条件として提示する目安としての値であって、実績としてエンジニアあるいはチームの能力を表すものではないと考えるべきだ。
それでは、オフショア開発は一か八かの大博打なのかというと現実には否定できない側面もあると認めざるをえない。
最初のトライアルで思うように成果が得られずに諦めたというケースも数多いのが現実だ。
しかし、生産性を把握する方法がないわけではない。
一例として、プロジェクトのパイロットシステムでもいいし、ほんの一部品でもいいが、小規模かつリスクの少ないコンポーネントを「ハドソン湾スタート方式」で委託してリサーチをするという方法などがある。
生産性の目安が得られるほかに、互いに手の内が分りコミュニケーションがしやすくなるという副次的効果もあるかもしれない。
また逆に、この段階であまりに不本意な結果になるなら、そのベンダとは相性が悪いのかもしれない。その時点で考えることは可能だと思う。
あらかじめ依頼する内容は、この時点で話を「なかったこと」にして振り出しに戻ったとしてもリスクのない範囲にとどめておけばよい。
このように、生産性というパラメータは費用効果を考える場合には切っても切れない関係にある。
単価だけに注目するのはおおいに危険を伴うということだ。