ブログ
当社のオフショア開発導入におけるメリットと開発環境の変化
以前の記事「当社開発の過去、今、未来~オフショア開発にたどり着くまで」でお話した通り、当社は開発チーム不在という状況が長く続いておりました。開発において、何が苦しかったかというと、
- システムのバグなどへの不安や深夜対応によるストレス
- 開発リソース不足による、実現したい機能の断念
- 開発環境や技術に関する慢性的な情報不足
- 技術についての相談相手が不在
- 技術スタッフの採用苦労
といった点です。これは開発人材不足で困っている会社ならどれも共感頂ける問題かと思います。
当社はオフショア開発体制への移行後、これらの問題はほぼ完全に解消されました。
それも、導入後すぐに。
それぞれの問題が、オフショア開発導入によってどのように解決されていったのか、一つずつご紹介したいと思います。
1.システムバグなどへの不安や深夜対応によるストレス
解決策→オフショア開発チームによる監視と迅速対応
システムバグなどで、一番多かったのが、機能を変更・追加し、リリースした後にバグやエラーに気づき、深夜での修正作業に追われるケースです。
また、急なアクセスの集中などの想定しきれない状況によって、システムにエラーが生じた際に迅速に問題に対処できるだろうか、といった不安を常々抱えもしていました。
問題発見時の迅速な対応
機能変更時のバグ発生に関しては、問題を発見し次第、オフショア開発チームのマネージャーに直接連絡しています。問題が完全に解決するまで、迅速かつ責任を持って修正に取り組んで頂いています。
もちろん、バグ自体をなくすことがベストですが、開発においてバグは避けられません。そのため、「何か問題が起こったとしてもすぐに対応してくれる」という体制が最も重要です。
この体制におけるバグ対応への安心感によって、難しいシステム変更にも積極的に挑戦していこうという姿勢も自然と生まれるようになりました。
2.開発リソース不足による、実現したい機能の断念
解決策→適材リソースと正確な見積
ある機能が、サイトにとってどんなに価値あるとわかっていても、技術的に難しそう、またはあまりに時間がかかってしまいそう、といった開発リソースの問題で実現をあきらめる、または先送りにしてしまっているケースはこれまで多々ありました。
充実のエンジニア体制
当社パートナーのオフショア開発センターでは、10年以上の開発経験と100名近いエンジニアを有しています。
開発人材には、バックエンド、フロントエンド、コーダー、テスター、その他、スキルの異なる様々な開発者がいるため、こちらの開発要件に応じて、最適な体制を組んで、基本的にどんな機能でも実施することが可能となりました。
開発負荷の事前プランニング
どんな機能でも開発できるといっても、当然ながら内容によってその難易度や、必要なは異なります。
こちらのリクエストに基づきオフショアチームで、開発にどのくらいの時間を要するのかを予め予測してくれるので、実施の優先順位を決めたり、リリースまでの見込を立てたり、といった開発の計画を適切に行うことができるようになりました。
難しいからといって、最初から開発をあきらめることはなくなり、「サイトにとって最も重要なテーマを優先して取り組む」、というあるべき姿勢をとることができるようになりました。
3.開発環境や技術に関する慢性的な情報不足
解決策→世界標準のプラットフォームを適用
開発に関しての悩みとして他に大きかったのは、技術や開発に関する新しい情報が社内になかなか入ってこないことです。
刻一刻と進化する技術動向や、より効率的で安全な開発手法についてのトレンドを知ることは、より良いサイト作りのためにはとても重要です。開発チーム不在という状況はこれら情報に関しての不安も生んでいました。
システム変更の際の履歴管理やバグ対応など、現状のやり方に非効率な問題を感じてはいました。が、どこから手をつければいいのかすら分からない、というのが当時の実態でした。
最先端の開発手法の導入
オフショア開発センターでは、従来開発手法として「アジャイル開発」を、チームマネジメントとして「スクラム」という手法を採用していました。
筆者注:
「アジャイル開発」とは・・・
アジャイルは英語で「俊敏な」という意味で、例えば半年の開発期間の場合に、従来は設計2か月→開発3か月→テスト1カ月といった段階での進め方に対し、数週間の短期サイクルの中でそれぞれ設計、開発、テストを行い、そのサイクル繰り返して完成させる手法です。途中の軌道修正や早期の成果確認ができるなどのメリットがあります。
「スクラム」とは・・・
アジャイル開発管理手法の一つで、ラグビーで「スクラムを組む」という言い方をしますが、同じ「スクラム」です。開発に関わるメンバーそれぞれの役割を決め、開発サイクル内での各タスクの担当、ステータスを可視化し、チーム一体となって開発を進めるチームマネジメント手法です。
当時は知識として知っている程度でしたが、当社のオフショア開発センターが世界中のクライアントに対して開発を行う際に採用する手法なので、当社の開発体制も一気に標準化できるチャンスと感じ、当社プロジェクトでも展開するように依頼しました。
結果的には、当社においても開発を管理する上で、効率面、安全面と大きく向上したのを実感しています。当社の実感としては、これまでの比較し、下記のような価値を感じております。
変更・追加など、開発途中での軌道修正がしやすくなった
タスクや問題の管理がチーム全体で共有され、かつ見やすくなった
各タスク単位でのメンバー間(日本側・オフショア間含め)での分業しやすくなった
開発途中での成果を確認しやすくなった
世界標準の開発ツールの導入
また、上記の開発プロセスを展開するにあたって、幾つかの開発ツールの導入もオフショア開発チームにサポートしてもらいました。具体的には、SVNというソースコード管理ソフト(Subversion)、トラッカーというタスク・イシュー管理ソフト(Gemini)の導入を行いました。
いずれも、世界中のITプレーヤーが採用する標準ツールであり、使用にあたってのノウハウや実例はWEB上でも膨大に見つけることができます。
世界標準の開発会社にとっては、当たり前のような仕組みであっても、当社のような開発チーム不在のベンチャーにとっては、なかなか手に届かないツールでした。オフショア開発体制の導入よって下記のような問題解決を実現しました。
・ローカルフォルダでの地道なソースコード管理(たまに保存し忘れる)
→チーム共有のバージョン管理ツールで変更の確実な履歴管理
・口頭やメール、ホワイトボードでのタスク管理(たまにタスクが漏れる)
→クラウドベースのイシュートラッキングツールで、全タスクを可視化・共有化
4.技術についての相談相手が不在
解決策→技術全般の相談窓口
開発の際に何かしら技術上の壁や問題が生まれ、どうしても社内で解決策が見つからないという状況が発生した際に、今までは検索エンジンなどインターネット上の情報に頼るしかありませんでした。
どうしても解決策が見つからない場合は、開発者向けのQAサイトで質問する、といった対応をおこなっていました。このやり方ですと、回答がもらえる保証はありませんし、回答までの所要時間も読めないので不安が大きいです。
解決策:専属の技術アドバイザー
オフショア開発体制への移行後、プロジェクトにてAPIの動作テストをおこなっていて、当社が知っているテストツールだとどうしても充分な結果が得られず、オフショア開発チームに相談したところ、一瞬で最適なツールを教えてもらい問題が解決したことがあります。
また、SNS関連のプラグインで、SNS側の仕様変更による対処方法について悩んでおり、オフショア開発チームに相談したところ、最新のSNS側の公式な見解に基づく対処案を複数回答してもらいました。
開発依頼ほどではないけど、まずは相談してみたい
というニーズは意外に大きく、相談に応えてもらえるというのは、最新トレンドをキャッチするだけでなく、プランニングにおける技術インプットとしても重宝しています。
5.技術スタッフの採用苦労
解決策→充実の教育環境と柔軟な人材採用
小規模なベンチャーの採用の苦労は必ず起こるものですが、特に対象が専門職であるエンジニアとなると、さらに難しいです。夢や理念だけで付いてきてくれるほど現実は甘くありません。
また、会社に定着してもらうためには、条件面だけでなく、エンジニアの継続的成長を実現するための仕事、教育環境を提供し続ける必要があります。核となる技術リーダーが不在の状況でこのような環境を作ることは容易ではありません。
オフショア開発センター側でのトレーニング環境
当社オフショア開発センターでは、開発者のトレーニングや学習といった教育プランの他、社員での旅行やスポーツイベントなど、開発者のスキルアップやチーム間での連帯意識を向上させる様々なプログラムを用意しています。
当社専属の開発メンバーもまた、このような環境の中にいますので、当社側で担当チーム向けのトレーニングや研修プランを構築する必要はありません。
餅は餅屋ではないですが、オフショア開発専門会社だからこそ、働くエンジニアが満足できる学習・就業環境を構築できるのだと思います。
新規採用により無限の人材獲得
また、当社があるスキルに特化した人材を専属メンバーとして獲得したいという場合は、オフショア開発センターを通して、当社が指定した細かい要件に従って新規採用をすることが可能です。
もちろん、こちらが用意するスキルテストを実施したり、Skypeによる面接を行ったりと、実際に自社エンジニアを採用するようなイメージで人材選びが可能です。
既存組織内の人材に閉じずに、ベトナムの開発人材市場全てをターゲットにベストチームを柔軟に構築することができます。
一般的にはオフショア開発のイメージは「開発コストの削減」だと思いますし、当社もそのような認識をしていました。
しかし、割安なコストは事実ながらも、今回ご紹介した通り、実際に当社が得た最大の価値は
「開発環境の世界標準化」であり、「世界で通用する開発人材獲得」 でありました。
これは、当社のベトナムオフショア開発センターが、1国の1サービスだけでなく、日本、シンガポール、ヨーロッパ、北米と世界中のプロジェクトの開発体制を支える環境だからこそ提供できる価値だと思います。
日本からの視点でベトナムを見ると、ややもすると「低コストの開発リソース」という一つの線になってしまいがちですが、ベトナム側から見えるのは
世界中に拡がる多数の線、そこに繋がる世界のIT市場であり情報なのです。
この感覚はオフショア開発体制でグローバルプロジェクトをドライブさせている方なら、規模の大小を問わず感じる共通の実感なのではと思います。
ベトナムの人材市場については、また別の記事で紹介させて頂く予定です。