見出し画像

初めてのオフショア開発はどうやって始めたらいい? 〜プロジェクト立ち上げ編〜

こんにちは、ベトナムのオフショア開発事業をやっているスクーティーという会社の、代表のかけやといいます。

私は2012年にベトナムに渡り、以降、100以上のオフショア開発プロジェクトに様々な立場で関わってきました。

その経験から、今後オフショア開発を検討されている皆様に、オフショア開発を始める際のポイントをお伝えしたいと思います。本記事では発注先がほぼ固まっている状況で、どのようにプロジェクトを開始するのがいいかについて説明します。

その前の段階の、契約締結の手続きや注意点に関しては「初めてのオフショア開発はどうやって始めたらいい? 〜契約編〜」の記事をご覧いただければ幸いです。

まずは一通りの情報を共有

NDA締結後、業務委託契約締結【前】に、開発チームは工数を見積もりを作成する必要があります。金額を算出するためです。工数を見積もるために、開発チームはまず、この案件の現状と業務の内容を把握する必要があります。

(1)別の開発チームからの引き継ぎの場合
既存システムの現状を知る必要がありますので、下記のような情報共有が必要になってきます。どのような情報が必要かは、開発チームに確認するのがいいでしょう。

  • 既存システムの機能全体の概要がわかるような資料

  • サーバにログインできる情報

  • システムのサーバ構成がわかる資料

    • 設定ファイル類のファイルパス

    • ログ出力場所

  • ソフトウェアの設計書

    • ソフトウェア構成がわかるもの

    • DB構成がわかるもの

  • ローカル環境構築手順(Dockerイメージなど、もしあれば)

  • など


他人が作ったシステムを解読するのはなかなか難しいので、初期段階では調査期間が必要で、その分の工数もかかってきます。

(2)新規にプロジェクトを開始する場合
どのようなシステム開発が求められているかを開発チームに共有する必要があります。まずは手元にある資料を一通り開発チームに共有し、他にどういう情報が必要かを開発チームに確認するのがいいでしょう。

プロジェクトの条件を共有

請負契約か、ラボ型開発かに関わらず、どのような開発を進めたいのかを共有します。

  • 委託する業務の内容

    • 要件定義、設計、実装、テストのような、どのフェーズを任せるか

    • ソースコード以外の成果物

  • 実装が必要な機能と優先順位

  • 直近のマイルストーン

    • ●●までに●●機能のプロトタイプがほしい

    • ●●までに本番リリースしたい

    • など

  • 今のプロジェクトの進捗状況

プロジェクトキックオフを行う

業務委託契約(請負契約かラボ契約)締結後、関係者を一同に集めてキックオフを行います。

できればこのときはオフショア先の企業のオフィスへ出張して顔を合わせることが望ましいです。直接顔を合わせるかどうかで感情は結構異なるもので、直接会ったほうがワンチーム感を出すことができます。

しかし、コロナの影響で海外渡航がなかなか難しい状況になっているので、オンラインでもキックオフを執り行うことは可能です。その場合も、極力カメラをONにして、全員の顔を映すようにしたほうがいいです。

キックオフの内容としては下記を私は推奨します。
大事なのは、お客様と業者という線を引くのではなく、同じチームメンバーとして、参加者全員が同じ目的を達成するための同志であり、目的達成のために協力しよう、という合意形成を取ることだと思います。

  • お客様、開発チーム双方の自己紹介。プロジェクトにおける役割だけでなく、趣味など個性がわかる話もすると、お互いにより親近感が湧くと思います。

  • 今回開発するシステムを使ってどのようなビジネスを行い、社会に対してどのような価値を提供したいのか、という思いをお客様から開発チームへ伝える。

  • プロジェクト概要の説明

  • スケジュールとゴールの説明

  • コミュニケーション方法やドキュメント共有方法など、双方のやり取りの決め事

  • 質疑応答

  • 次のアクション(誰がいつまでに何をやる)の決定


プロジェクトで達成したいこと、どのような価値を社会に提供したいのかということを開発チームに、お客様ご自身の口から説明して、思いを伝えるということは非常に重要だと考えています。

これをやるかどうかで、海の向こうにいる開発チームも同じ志を持った仲間になるか、契約上の業務を遂行するだけの作業者になってしまうかが変わってくると私は感じています。

契約がある以上、業者はそれを遂行する責任が発生するのは前提としてあるものの、プロジェクトを推進するのは「人」なので、全員が熱い思いを持って前向きに動けるかどうかで、プロジェクト全体の効率や結果は変わってくるはずです。

プロジェクトを開始する

キックオフで「​次のアクション」として決めたことから着手していきます。

ウォーターフォールでプロジェクトを管理する場合、開発チームの方でWBSを作成してスケジュールを決定、アジャイル(スクラム)で管理する場合は、次のスプリントで行うスプリントバックログを決定して、タスクを消化していくことになります。

ただ、いずれのケースにおいても、現時点で決まっている作業内容から開発チームで工数を見積もり、開発関連の全体スケジュール作成依頼し、事業側で必要な作業(例えば利用規約やプライバシーポリシーの作成、社内外で運用テストに参加してくれる部署やメンバーの調整、営業資料の作成など)の着手タイミングを調整できるようにするのがいいでしょう。

お気軽にお問い合わせください

最後までご覧いただきまして、ありがとうございます!

基本的には、日本国内でソフトウェア開発プロジェクトを始めるプロセスとほとんど同じですが、オフショア開発の場合は開発チームが物理的に通りところにいることと、コミュニケーションが基本的にオンラインなる点が大きく異なります。

そのため、プロジェクトに込める思いをどのように伝えて浸透させるか、普段のコミュニケーションをどのように取るか、といった部分を最初に慎重に設計することが非常に重要になります。

はじめてオフショア開発を始める場合、いろいろな不安があるかと思います。是非お気軽にお問い合わせくださいませ。

この記事は私が経営する株式会社スクーティーのコーポレートブログの下記記事を焼き直したものです。

この記事が気に入ったらサポートをしてみませんか?