オルタナティブ・ブログ > Software Development >

ソフトウェア製品開発現場の視点

クラウドコンピューティングでオフショア開発は次の段階へ入る

»

ソフトウェア開発のオフショアリングが最も積極的に、かつ効率的に行われているのは、アメリカからインドへのオフショアリングである。インドのソフトウェア開発技術者は基本的に英語で教育を受けて、英語で仕事をやっているので、アメリカからのオフショアリング先としては最適であった。これに対して、日本のソフトウェア開発のオフショアリングは、中国が中心である。インドと比較して中国の方が日本語を話せる人の比率が高いことや、中国が積極的に日本のオフショアリングを受け入れようとしてきたことが、大きな理由だと推測される。もちろん、距離が近く、行き来が容易ということが大きいのではないかと思う。

ところが、アメリカからインドへのオフショアリングと日本から中国へのオフショアリングには、単に言語が近いとか距離が近いとか言う違い以外の決定的な大きな違いがある。それは、オフショアリングのプロセスである。

ソフトウェア開発のプロセスは常に変化を続けていて、通常は会社ごとに違っているが、アメリカでは会社間のエンジニアの行き来によってプロセスや開発で使われる用語が次第に統一されてきた。たとえば、ソフトウェアのリリースに先立ってテスト用に提供するものは、近年「ベータ」と呼ばれているが、以前は「ベータ」という用語を使っている会社は限られていた。これが次第に広く使われるようになって、10年ほど前に一般用語として通用するようになっていた。「ベータ」は社外にも通用する用語であるので、ここに例としてあげたが、内部で使われる用語であっても、他の会社に行っても通用することが多い。

開発のプロセス「流れ」も同様で、どこの会社に行ってもだいたい同じような感じでソフトウェアが作られているのである。そのために、インドのオフショアリングは、アメリカのソフトウェア開発のプロセスの一部を置き換える形で発展してきた。インドに限らず、アメリカからオフショアリングを受けている国々では、アメリカのソフトウェア開発プロセスで統一されて、効率化されている。

一方日本から中国へのオフショアリングは、日本の各社独自のプロセスを中国でオフショアリングを受ける会社に持ち込むことで行われている。すなわち、プロセスの定義をはじめとして、用語の統一などの準備作業を実施し、さらにオフショア先の人たちにすべてを教育しなければならない。そのため比較的大規模なオフショア開発でしか、この方法をとることは難しい。また、一度決めたオフショア先を変更するコストは莫大になる。

今後クラウドコンピューティングが進んでいくとすると、日本のソフトウェアを開発している会社の競争相手は、ダイレクトに海外のソフトウェア開発会社となる可能性が高い。たとえ、プライベートクラウドであっても、システムが仮想化することによって、アプリケーション開発担当者が、マシンのある「オンサイト」にいく必要性はほとんどなくなるからである。もう、(日本語への翻訳を除けば)日本にいる日本人のエンジニアが開発する必然性はない。

こういった世界の変化に対応し、世界と競争していくためには、世界標準の開発プロセスに対応した開発を実施し、その開発プロセスを理解した、あらためて独自プロセスを教育する必要のないエンジニアを活用していかなければならないであろう。アメリカでソフトウェア開発を学び、アメリカから戻ったリーダーたちがたくさんいるインドは、現在この条件に最も合った場所である。

インドでのオフショア開発というと日本側のエンジニアの「英語」によるコミュニケーションが問題になる。しかし世界標準の開発プロセスに基づいた開発を実現できないならば、日本のソフトウェアが生き残る道は、携帯電話と同様のシステム的な鎖国、そしてガラパゴス化の道しかないように思える。これまで、ソフトウェア開発において、英語は Nice to Have であった。しかし、英語が Must Have の時代がもう待ったなしで来ている。「英語」が難しいと言っている状況ではない。

リアルコムでは、2003年に中国でのオフショアリングを始めた。中国の会社といっても、アメリカからのオフショアリング中心の会社であったので、オフショアリングに関係するコミュニケーションはすべて英語ということになった。英語を使うことに関して、最初は抵抗がなかったわけではないが、そのベースがあったことで、昨年アメリカおよびインドに拠点があった AskMe 社を買収する決断ができた。リアルコム以前の経験からみても、英語に関しては、「やればできる」のである。英語をできない理由にしている人をさっさとプロジェクトからはずして、まずはやってみることをお勧めする。

Comment(0)