オフショア開発をはじめて1ヶ月たったのでふりかえってみる
はじめに
こんにちは、たごです。
現在私の参加するプロジェクトでオフショア開発を取り入れています。いまどき珍しくもないですが私としては初の取り組みです。オフショア開始から1ヶ月が経ちましたので、ここらへんでやってみた感想などを書いておこうと思います。
結論を先に書いてしまうと、現時点ではほぼ違和感なく作業を進めることができています。
どうやってるの?
まず、話の前提となるプロジェクトの環境について書いておきます。
オフショア先
オフショア先はベトナムの開発会社です。日本企業との取引実績が多数あり、弊社ともこのプロジェクト以前からいくつかのプロジェクトに参加していただいていました。
なおベトナム(ハノイ)との時差は2時間でそれほど大きな差異はありません。
体制
開発体制の主なメンバーは以下の通りです。
- クラスメソッド
- PM 1名(私)
- リードエンジニア 1名
- オフショア先
- 開発リーダー 1名
- 開発メンバー 3名
- ブリッジSE 1名(他プロジェクトと兼任、この方だけ日本語ができる)
このプロジェクトでは、日本側とオフショア先のメンバーが一つのチームとして作業を行っています。役割分担は以下の通りです。
- クラスメソッド
- プロジェクト管理
- アーキテクチャ検討・基本設計
- プルリクエストベースのコードレビュー
- 開発環境・開発ルール整備
- 実行環境整備
- オフショア先
- 詳細設計
- 実装・テスト
なおオフショア開発開始に先立って、オフショア先のコアメンバーには3ヶ月間日本に常駐してもらい一緒に作業をする期間を設けました。
コミュニケーション
CMメンバーとオフショア先メンバーのコミュニケーションは、ブリッジSEを仲介して日本語で行っています。
コミュニケーションを支える環境として、以下のツールを使用しています。
- Backlog(wikiでドキュメント作成、課題でタスク管理)
- GitHub(ソースコード管理・プルリクエスト)
- Hangout(ミーティング)
- Slack(QAや日常連絡など雑多なコミュニケーション)
仕様や開発ルールはCMメンバーがBacklogのwikiにページを作成して共有しています。 各タスクはチケット(課題)として一つ一つ登録し、スケジュールやアサイン、進捗の管理を行っています。
毎朝全員参加で15分程度のショートミーティングを実施しており、前日の進捗・当日の予定・課題などを共有しています。
質問やちょっとした困りごとの相談、その他の連絡にはSlackを利用しています。
やってみてどうだったの?
最初に書いた通り現時点では概ねうまくいっています。
とはいえ振り返ってみると言語の違いの壁は大きく、コミュニケーションには気をつける必要があった点も多かったです。
会話にしてもドキュメントにしても、通訳・翻訳が挟まることでどうしても伝達スピードは落ちます。初期は開発メンバーと直接コミュニケーションできないことがもどかしかったし、相手にしっかり伝わっているのかかなり心配しました。
会話の場合、最初はこちらから一方的に喋ってしまうこともありましたが、ブリッジSEがメンバーに通訳しやすいように途中である程度の間を設けて話すようになりました。そのあたりの会話のリズムは以前は戸惑いましたが、今ではだいぶ慣れました。
ドキュメントは、なるべく早めの共有を行うように心がけています。
翻訳時に誤解が生じないように、こちらから発する日本語はなるべくわかりやすくシンプルに、かつ曖昧な表現にならないように気をつけるようになりました。これは日本人同士のコミュニケーションでも重要ですので、いい訓練になっていると思います。
開発環境も、事前に十分に整備しておくことによって、オフショア先メンバーが余計な躓きをせずに済みました。
また毎日のミーティングやチャットによってコミュニケーション自体を密にすることで、地理的な距離感を軽減することができています。 文だけだとどうしても硬い感じになるので、チャットではあえて絵文字を使ったりして印象を和らげたりもしています。
事前にオフォショア先のメンバーに来日してもらって、一緒に作業をする期間を持てたのはよかったです。 なにより同じ場所で一緒に作業をすることで心理的な距離を縮めることができたことが良い結果に繋がっていると思います。 オフショア先のメンバーには、その期間に開発方法や環境に十分慣れてもらうことができました。
さいごに
本格的にオフショア開発が始まって1ヶ月経ったところでその過程を振り返ってみました。
オフショア先が日本企業に慣れていたのと日本と現地で大きな時差がなかったのは、初のオフショア開発をする上ではかなり助かりました。
年末年始を挟んでプロジェクトは続きますので、今後また気づきがあれば続きをかいてみたいと思います。