ですが、プロジェクトを進めていく中で気付いたのです。日本で開発をする機会が失われることなどないということに。
事実、このプロジェクトでは、アプリケーションのアーキテクチャとなる部分や汎用的に使用する共通クラスのようなものは日本であらかじめ作成しておき、その後オフショアに展開しました。プロトタイプの作成も日本で行いました。技術的な課題についても、きちんと日本で検証を行い、実装可能な状態まで持っていきました。
例えば、帳票をJavaのWebアプリケーションでMicrosoft Wordのファイルにするという仕様がありました。Apache POIなどを検証した結果、Microsoft Office 2003からXML形式でドキュメントを保存できることに着眼し、帳票フォームをXSLで作成してDOMでXML形式のWordドキュメントを生成するという方法に決定しました。そしてアーキテクチャとして組み込み、オフショアに展開・量産しました。
このように、アプリケーションのコアとなる部分については日本でプログラミングを行うので、オンショア側にはより高度な技術力が求められます。プロジェクト全体の開発効率を上げたり、品質を高めたり、運用効率を上げたりする、そういう部分の責任はオンショアがきちんと持つ必要があるのです。このプロジェクトを経験したことで、私はオフショア開発の1つの形というものが見えた気がしました。
また、このプロジェクトでは、開始時期の遅いサブシステムについては新入社員数人をプログラマとするチームで開発を行っていました。こういった取り組み1つで、若手の育成もできるのだと感じました。
オフショア開発をするには、やはりそれなりの準備期間が必要であるということも実感しました。そうであれば、例えばアジャイル開発のようなプロジェクトにはオフショアは向いていないのではないでしょうか。やはり、日本で開発する機会がなくなるなんてことはありませんね。そう思えるようになったのも、大きな収穫です。
このオフショア開発を通して、ほかにもいろいろな経験をすることができました。人生で初めて「海外出張」というものを経験しました。ホテルからオフィスまでタクシーで行きましたが、日本ではあまり経験することのないアグレッシブな運転でした。
現地での説明は通訳を介して実施したのですが、初めのうち中国語でのやりとりではみんな怒っているように見えて、少しひるみました。「な、なんで怒ってるんだ?」と。慣れてみれば「そういうものなんだ」と分かりましたが……。
設計書は、日本語のままでほぼOKでした。漢字は意味が似ているものも多いですし、中国のメンバーは日本語の勉強もしてくれていたので。ただしカタカナは難しいようです。それ以来、私は設計書にはカタカナを書かないよう気を付けるようになりました。それから日本語の音読み・訓読みの区別も相当難しいらしいです。
オフショアのメンバーは、みんなとてもいい人たちでした。オフショア開発であろうとなんだろうと、システムって人が作っているんだなぁということを実感しました。
よく「オフショアを使う」という表現を見掛けます。「使う」という意識がどこかに残っていると、問題が起こったときに責任を押し付けたくなるような気がします。場所が離れていようとも、国が違っていようとも、仲間として認め、尊敬し合う。そうでないとオフショア開発はうまくいかないのではないのでしょうか。
オフショアについてはいろいろな場所で語られていますが、「品質が……」「コミュニケーションが……」「文化の違いが……」といった内容が多いように思います。オフショアの認知度が上がっている一方で、現場ではマイナスのイメージが大きいという印象を受けていました。ですので、少し違った視点からオフショア開発を紹介してみました。
私はこのプロジェクトの後に、ニアショア(ATSが北海道に立ち上げた国内開発拠点)との協業も経験しました。これらの経験を通して、日本と中国の開発手法だけでなく、リモートとの連動方法なども学ぶことができました。今後はそこで経験したことにさらに磨きをかけ、次のプロジェクトをより良いものにしていけたらと思います。
皆さんも、「オフショア」というだけで恐怖心を持たず、機会があればぜひチャレンジしてみてください。勉強になること請け合いです。
新楽清高
1973年生まれ。東京生まれの東京育ち。大学で都市計画を専攻後、社員100人ほどのシステムインテグレータにてSEとしてセールス〜要件定義〜開発・テスト〜運用までを行う。その後2003年11月にアクセンチュア・テクノロジー・ソリューションズに入社。Java、.NET、SAPにて大規模な基幹システムの構築に携わり、現在に至る。基本ポリシーは「楽しく」。趣味はトラブル対応。
Copyright © ITmedia, Inc. All Rights Reserved.