1
/
5

インドとベトナムと日本の協業でソフトウェア開発するときに実践していること



こんにちは。製品開発部 ソフトウェア開発課の中西です。 FRONTEOではアプリケーション開発にオフショア開発を取り入れています。インドとベトナムのチームとの協業という形を取っています。インドには10数名、ベトナムには5名、日本側には社員とパートナーで合わせて30名程度のメンバーがいます。すべての製品でオフショア開発を実施しているわけではなく、いくつかの製品、特にアーキテクチャーが固まっていて、開発プロセスがこなれてきているような製品を対象にオフショア開発を取り入れている状況です。

「オフショア開発サイコー!」と叫ぶつもりはありません。今まで前職も含めてオフショア開発、オンサイト開発、ニアショア開発*などというスタイルの開発を経験してきましたが、「こうすれば間違いない。コストも下がって生産性も上がって、みんなハッピー」みたいな状態にはなかなかめぐり合いません。これは当然の話ですが、オフショア開発でなくても「成功の法則」といったものは存在しないに等しいように、オフショア開発の場合は(なおさら)地道に自分たちに合ったやり方を探り、試し、やめて壊し、作り直し、また試し、そして少しずつ改善していく、という方法しか成功に向かっていく方法はないのです。毎日の1%の改善が1年後に振り返ったときに大きな前進となっていることに気づく、そういう世界だと私は思っています。

*ニアショア開発・・・オフショアにデータを持ち出すなんて「もってのほか」なセキュリティの厳しいお客様に対して、東京と比べたら生活コストの低い日本国内拠点にオフショアから連れてきたメンバーを集め、プロジェクトサイトとし、コストを低減させる手法。私見ですが、海外にわざわざ出てきているのに東京という「本拠地」に行くことができないという疎外感などから、メンバーの定着率が低くなり、スキルアップがなかなか進まないという問題がある。せっかく日本まで来たんだから、コアメンバーと一緒に働きたいよね!

そんな勝利の方程式の無い世界ながら、FRONTEOでは割とうまくやれていると感じているので、他のプロジェクトでも実践できそうな、できるだけ一般的なコツ3点をここでは紹介したいと思います。

いつでも顔を見て話せるようにする
顔を見て話すことは重要です。メールでもチャットでもチケット管理システムでも用件は伝わるかもしれません。しかし相手の「機嫌」や「やる気」はチャットではわかりません。あなたが提案した設計より、もっといい方法を相手は思いついているかもしれません。もしかしたら問題に気づいているかもしれません。大抵のオフショア開発では、オンショア側(日本側)の人間が契約的に優位な状況にあることかと思います。もしかしたらオフショアのメンバーは日本側のメンバーの機嫌を損ねるのを嫌がり、もっといい方法があっても提案をしてこないこともあるでしょう。顔を見ながら話せば、より良いアイデアを得るチャンスや、場合によってはバグの温床の作り込みから身をかわすチャンスをつかむ可能性がグッと高まることかと思います。

オフショアメンバーとのコミュニケーションは英語か日本語を使って行います。伝えたいことを完璧にチケットに記載することは日本人でも難しいと思いますが、外国語を使うオフショアメンバーにとってはなおさらです。チケットの記載内容だけではわかりにくいことは当然あるため、そんな場合にはすぐにテレカンを開始します。日本語を話せるバイリンガルのメンバーも何人かいるため、話してしまえば「なんだそんなことか」ということがよくあります。やはり話した方が早いですね。

FRONTEOではStarleafというテレカン用ソフトウェアを使用しています。私が使っている感覚としては、某大手のサービスよりも音声や画質が良いようです。画面共有ももちろん可能です。いつでもテレカンができるように設備も充実させています。基本的に1人1セットのWebカメラ+ヘッドセットを準備しています。またグループ同士でミーティングする場合のために、4箇所のテレカン用フリースペース、2箇所の個室、1箇所の大部屋が用意されています。フリースペースはもちろん空いていれば予約不要でいつでもテレカンを開始可能です。



メトリクスを使って状況を客観的に把握する
誰がうまくいっているのかいないのか。どのチームのやり方が良いのか、それとも実は悪い方法なのか。主観的に感じ取ることも重要ですが、チーム全体で納得できる「物差し」が重要です。そのためには数字(メトリクス)を集めるしかありません。

FRONTEOではEVMの基本的な数値をベースに、生産性をほぼリアルタイムで知ることができる環境を作っています。例えば以下のようなことがわかります。
・Actual Costに対してEarned Valueが高いチームはどのチームか。
・Planned Valueに対してEarned Valueが不足しているチームはどこか。
・タスクの進捗に直接紐付かない管理コスト、雑作業コストはどの程度あるか。
・先月、一番Earned Valueを計上したのは誰か。
「誰が一番か」なんてことがわかってしまうと、ドキっとしてしまう人がいるかもしれませんが、厳密な数値ではないため、あくまで生産性の指標として使っています。なので、この数値を見てギスギスする、なんてことは起きていません。むしろこの数値を見て、「なぜこのチームはうまくいっているのか」とか逆に「なぜこのチームはうまくいっていないのか」を分析するキッカケとなります。そのような分析でわかった「より良いノウハウ」を別のチームにも適用することで、チーム全体としての改善を継続することができます。

メトリクスで評価できるということはオフショア開発をしていなくても重要だと思いますが、オフショア開発ではさらに効いてきます。例えばインドの2チームはどちらがうまくいっているのか、とかインドチームとベトナムチームを比較して、どちらがうまくいっているのか、などということが誰かの主観的な想いを排除して、数字でわかるようになります。

時差や祝祭日の違いを有効活用する
日本からベトナムは-2時間、日本からインドには-3.5時間の時差があります。日本が9:00頃から業務を開始すると、11:00頃にベトナムのメンバーが業務を開始し、13:30頃にインドのメンバーが業務を開始することになります。

ベトナムとは2時間しか時差がないのですが、日本で朝の状況確認と優先度の高い作業の確認をざっと実施した後でベトナムメンバーと話ができるため、作業指示は的確にできます。ベトナムメンバーにとっては、出社してすぐに日本から指示が飛んでくる状況となり、ほとんど待ち時間が発生しなくなります。

インドとの時差は特に夕方に効果が大きくなります。日本ではそろそろ明日の作業を整理して帰ろうという時間帯、例えば18:30でも、インドはまだ15:00でもう一仕事できる時間です。ここでインドメンバーに対して一本作業指示を投げておけば、明日の朝には結果が挙がっているという状況を作れます。

ベトナムやインドの人々は、年末年始は最低限しか休みません。この「日本は仕事していない期間」に作業を進められることで、アドバンテージを得られる部分は大きいと感じています。逆に他国の人と協業すると、日本は祝祭日が本当に多いなぁと感じますね。時差や祝祭日の違いは、始めは慣れるのに戸惑うこともありますが、一度慣れてしまえば無くてはならない開発スタイルができあがってくると思います。

まとめ
「顔を見て話す」、「メトリクスを使う」、「時差を有効活用する」という3点を紹介させていただきました。当たり前のことだらけかもしれませんが、当たり前なことの積み重ねで新しい景色が見えてくると思っています。FRONTEOでソフトウェア開発エンジニアとして働きたい方が、どのようにFRONTEOで働くことになるか、イメージができれば幸いです。

株式会社FRONTEOでは一緒に働く仲間を募集しています
10 いいね!
10 いいね!
同じタグの記事
今週のランキング