WiredIn Japan株式会社 代表の田中です。
ソフトウェアのオフショア開発自体は、全く新しいことではなく、日本からは主に中国やインドを中心として始まり、近年のトレンドとしては東南アジアが注目をあつめています。
すでにそれらのオフショア先を活用して事業を行っている日本企業は多々ありますし、そこでどういったスタイルでオフショア開発しているも様々です。
現地の会社に直接委託したり、現地に子会社を作ったり、業務の進め方としては、日本人の管理者を送り込んだり、日本語が堪能な現地プロジェクトマネージャーと密にコミュニケーションをとったりと、現地の商習慣、勤労文化等にも合わせながらやっているものと思います。
一方、弊社では、東南アジアを飛び越して、アフリカ・ルワンダでこのオフショアソフトウェア開発をやっているのですが、中国や東南アジアと決定的に違う点があります。
それは、地理的に遠い、ということです。カタール航空を使ってドーハ経由で行った場合(おそらく現時点の最短・最速ルート)で、12,000km、約22時間です。
何かあったら、「ちょっと行ってくる!」で済む距離では、正直ありません。
したがって、「ちょっと行ってくる」は基本出来ない、という前提で、業務フローを考えていく必要があるわけです。
今回は、このような環境下において、我々がどのように日本〜ルワンダ間でソフトウェア開発を行っているのか、どのようなツールを使っているかなどご紹介できればと思います。
すこし技術よりのお話になりますので、要点だけ先に挙げますと
・時差7時間を活用し、業務時間がかぶるところで情報共有・指示、それ以外の時間はそれぞれのタスクをこなす。
・プロジェクト管理システムをしっかりと運用、コミュニケーションはチャットを中心に
・ルワンダ側の具体的進捗状況をリアルタイムで確認できる開発環境の構築
といったところが中心になります。
1. 午前中 前日の成果物を、プロジェクト管理ツールでの報告や、開発環境を通して確認
2. 午後1:00~3:00頃 問題点、修正点の指摘、その他指示の作成
3. 午後3:30~4:30頃 このぐらいの時間からルワンダ側が稼働。取りまとめた指示についての情報共有
4. 午後4:30~業務終了 共同作業時間、チャット等でリアルタイムでコミュニケーションをとりながら進める
5. 深夜12~1時頃 ルワンダ側の業務時間終了。レポート等があがってくる。(私は、寝る前にそのあたり見てから寝てますが・・)
弊社では、オープンソースのRedmineをプロジェクト管理システムとして社内で運用しています。
最近はSaaSタイプのプロジェクト管理ツールも多いですが、なんといっても無償で使えますし、プラグインも多く、やりたいことは大体これでできるので、使っています。
Gitを利用しています。GitHubは使っておらず、Redmineとプラグインで連携させる形で、独自に運用しています。
業務上のやり取りは、HipChatを中心に利用しています。
ビデオ会議が必要な場合は、Skepeが中心です。
GoogleApp for Workをメールインフラとして利用しているので、Google+を使っています。
プライベートなコミュニティとしては悪くないと思います。
Google DriveとDropboxを併用する形でデータ共有をしています。
主にAWSを中心に、開発用のインスタンスを立ち上げ、その上に各プロジェクト用の開発サーバを立てます。
開発者は主にMacを利用しており、開発言語もPHPやRubyが中心ですので、開発者各々のローカル上でコーディング、動作確認を行いながら作業を進めます。
1つのチケットの実装が終わりレビュー段階になったタイミングで、Gitへのコミットかつ上記開発環境へのデプロイを行い、日本側はその開発サーバ上に展開された、最新状態をもってしてチェックや修正点の指摘などを作ります。
この部分のスピード感は重要で、基本的にプロジェクト進行中は毎日1回、業務終了前などに開発サーバを最新状態にすることを求めています。
冒頭書いた通り、ちょっと何かあったら行ってくる、ができないので、このスコープ(指示〜実装〜レビュー)のサイクルが長くなればなるほど、危険度があがます。
すなわち指示と実装の乖離の発見が後ろになればなるほど、時間と作業量の浪費になり納期に対してもマイナスになるので、このサイクルは非常に重要視している部分であります。
最近は業務回す上で必要だったり便利なツールが、非常に低コストで運用することができ、実際にクラウドソーシングと言った言葉があるように、直接会わずとも業務を完遂できる時代、環境があります。
アフリカ・ルワンダであっても、ネットとPC(途上国の場合、それなりに安定した電源供給)があれば、環境としては十分であり、距離はもはや関係ありません。
ただ、時差は変えようのない部分なので、その時差をうまく活用する仕組みを作れれば、むしろ業務時間を長くすることができますし、時差が問題になるスタイルですと、当然フィットしないでしょう。
実際問題、オフショア開発という単体で見れば、東南アジアもコンペティターになるわけですが、我々の現在の視点としては、サイトのトップに掲げているように、このような特徴を前面に出し、オフショアを検討していく上での一つ特徴のある選択肢として、考えていただければと思っています。
たとえば、東南アジアと、ルワンダを組み合わせることで、実質的な業務時間を+5〜6時間伸ばすような運用もできるかもしれません。
もちろん、ルワンダ・オフショア開発の特徴は時差だけではなく、他にもいろいろありますが、それはまた別途お伝えしていければと思います。