朝日ネット 技術者ブログ

朝日ネットのエンジニアによるリレーブログ。今、自分が一番気になるテーマで書きます。

オフショア開発を4年間続けた成果と課題

開発部のm1calです。過去にオフショア開発について言及している記事がありますが、開発部における取り組みについてもう少し詳しく紹介しようと思います。

開発部では2018年度よりオフショア開発を採用しており、ベトナムのソフトウェア開発会社と契約しています。 私は昨年8月に前任者より引継ぎオフショア担当となり、オフショア開発案件の全体的な管理を担当しています。

オフショア開発採用の目的

開発コスト低減の目的以外に、大規模開発案件で朝日ネット社員のみでは要求されている期日にスケジュール的に難しい場合や並行して複数の開発案件を進める必要がある場合など開発活動の量産体制を強化するためにもオフショアを利用しています。

オフショア開発体制

  • ベトナム側
    • ブリッジSE、テクニカルリード、デベロッパー、QC
  • 朝日ネット側
    • オフショア開発案件の全体管理者(私)、案件担当者

ベトナム側のブリッジSEは日本語が堪能なため、やりとりはすべて日本語で行っています。

オフショア開発の進め方

現状はすべての開発案件でオフショアを利用している訳ではなく、案件毎にオフショア開発向きか判断した上でオフショアへ開発依頼をしています。オフショア開発向きとは、仕様調整等が終わっていてやることが明確になっているもの、過去に同様の開発を実施したことがあるものであれば、オフショア開発向きと判断しています。但し、今後オフショアへ開発依頼する範囲を広げていきたいと考えています。

  1. [AN 依頼元部門] 開発案件を企画した部門が依頼元となり開発部へ依頼する
  2. [AN 開発部] 依頼元部門と開発内容やスケジュール等を調整する
  3. [AN 開発部] 要件定義/基本設計を行う
  4. [AN 開発部] オフショア開発向き案件か検討する
  5. [AN 開発部] オフショアへの依頼用チケットを作成し、依頼内容を記載する
  6. [Offshore] 依頼内容を確認し、工数見積・質問を提出する
  7. [AN 開発部] 見積を確認、質問に回答する
  8. [Offshore] 詳細設計~単体試験までを実施し、ソースコードを納品する
  9. [AN 開発部] 受入れ試験を行い、必要に応じてFBを出す
  10. [Offshore] FB対応を行い、再度納品する
  11. [AN 開発部] テストチームにてシステム総合試験を行う
  12. [AN 依頼元部門] 検収試験を行う
  13. [AN 開発部] リリースする

※ AN: 朝日ネット, Offshore: オフショア(ベトナム)

オフショア開発を採用した成果

4年間オフショアへ開発を依頼した成果としては、複数の開発案件を並行して進めることが出来るようになりアウトプットが増加しています。特に新規開発案件の一部や不具合修正、改善案件をオフショアで開発出来ており、規模は小さいながらも案件数は多いためオフショアを使ってそれらを開発出来ているので、当初の目的は果たせていると考えています。

オフショア開発の課題

オフショア開発を採用して以降開発案件数も増えて開発部としてアウトプットが増加している一方で、オフショア開発を進めてきた中で見えてきた課題もあります。

認識齟齬による不具合増加

新型コロナが流行する前は、中規模以上の開発案件を依頼する場合には1~2週間程度ベトナムへ出張し、案件担当者がベトナム側のエンジニアに案件の説明や質問に答えてある程度一緒に開発を進めていました。現在ではベトナム出張が出来ずテキストベースでやりとりするのみとなっており、依頼内容を詳細に記載していますが、文字だけでは伝えられる情報が不十分なこともあり意図していることが伝わらず、認識齟齬に起因する不具合が増えてきました。

案件依頼時の負担

オフショアへ開発依頼をする際には案件担当者が依頼用チケットを作成しますが、上記の通り文字情報だけで伝えることが必要なため詳細に依頼内容を記載し、時には修正するコードまで指定する場合があり、案件担当者にとってはそこまで詳細に依頼内容を考えることが負担となっています。そのため、納期まで時間が無い場合などにはオフショア開発向き案件でも朝日ネットの案件担当者が自分で対応してしまい、オフショアへ依頼を出さないということも増えてきました。

課題解決への取り組み

認識齟齬による不具合増加への対策

まだしばらくベトナム出張は再開できそうにもないので、依頼内容をテキストベースのやりとりだけでなく、必要に応じてオンライン会議を開き直接当社エンジニアと話す機会を設けるようにしました。 また、これまでは1Sprint(2週間)内で終わる程度のレベルまで分解し実装する内容のみを依頼用チケットに詳細に記載する事が多く、案件全体としての目的や背景等の説明をしていないことがほとんどでした。なぜこの開発をするのか、実現したいことは何かを共有できていないことも1つの原因と考え、依頼用チケットに目的や背景等も記載するようにしました。 規模が大きい案件の場合には、キックオフミーティングを開催しそこで案件全体の説明や質疑応答も行う取り組みも開始しました。 ベトナム側でも関連する知見が十分ある案件については、オンライン会議でフォローすることにより、出張しなくても十分に伝えることが出来るようになってきたため出張分のコスト削減にもつながっています。

案件依頼時の負担への対策

ベトナム側でも当社の事業について徐々に知見が貯まってきたこと、より上流工程から一緒にやっていきたいとの申し出があったこともあり、案件により依頼レベルも変更しています。以前は詳細設計まで終わってから依頼することが多かったのですが、要件定義や基本設計が終わった段階で依頼する案件も増やしています。 また、過去に似た開発実績があったり、ベトナム側にも知見が十分貯まってきた案件については、チケット作成自体も自分達で行ってもらうような取り組みも始めました。上記の「認識齟齬による不具合増加への対策」での取り組みによって、最初に案件全体の説明や目的・実現したいことを伝えるため、これについても必要なタスクのチケット作成を自分達で行ってもらうようにしました。案件担当者は作成されたチケットに記載された内容を見て認識の齟齬が無いかも確認できます。 これらの取り組みにより、案件担当者の負担が軽減されてきています。

対策の結果については、またこの場でご報告していきたいと思います。

採用情報

朝日ネットでは新卒採用・キャリア採用を行っております。

新卒採用 キャリア採用|株式会社朝日ネット