1. オフショア開発におけるテクニカルディレクターの仕事とは?
テクニカルディレクターはオフショア開発の舵取りをおこなう仕事です。テクニカルディレクターが担う役割や必要なスキルについてご紹介します。
1-1. テクニカルディレクターの役割
■ 要件定義
開発プロジェクトを始める際に最初のステップとして実施されるのが要件定義です。要件定義では、現場の制作スタッフに対して制作の目的や方針、開発を進める上での数値や期間の目標、クライアントが希望している機能や開発後の運用方法などを共有します。
プロジェクトの全体像を皆で共有することで、一体感のある業務進行が可能になります。
開発目標や具体的な制作内容、期間などをいつでも確認できるよう、要件定義書を作成します。要件定義書に記載する具体的な内容は、当該プロジェクトを開始する目的や開発目標、KPIなどの具体的な数値目標、開発の期間や納期、デザインや実装したい機能などを網羅的に記載します。
■ 基本設計
要件定義でプロジェクトの大まかな目標を決めたあとは、開発の基本設計をおこないます。基本設計とは、要件定義で定めたゴールや目標を達成するために必要な開発項目を洗い出すことです。
ユーザーの行動を細かく分割・分析して必要な機能を検討できるカスタマージャーニーマップの作成、快適なユーザービリティを実現するための画面設計、必要な情報を適切に管理しスムーズな運用をするためのデータベース設計、機能の抜け漏れやバグの見過ごしを防ぐためのテスト設計などをおこないます。要件定義と同様に経過目標としてのKPIや成果目標としてのKGIを設定します。
■ 詳細設計
基本設計が完成したら、プログラマーへの具体的な指示ができるように詳細設計をおこないます。詳細設計では、基本設計で描いた機能をどのように実装していくのか具体的に記載し、プログラマーは詳細設計をもとにプログラミングをおこないます。
詳細設計に記載する内容としては、ネットワークやシステム機能を具体的に示した構成図、画面遷移やレイアウトなどを示した画面設定、処理のフローを図示した処理設計、ファイルレイアウトを整理したファイル設計、外部インターフェイスのレイアウトを示す外部インターフェイス設計などがあります。
場合によってはプログラマーがすぐに作業に取り掛かれるように、詳細設計ではドキュメントを作成せずに、基本設計で作成された物理設計書をそのまま使うケースもあります。
■ 開発補助
プログラマーによる実装が開始されたら、随時プログラマーからの仕様確認などの対応をおこないます。機能ごとに実装が完了したら、要件定義や基本設計で定義されたものが正確に実装されているかを確認します。
動作不備や表示に不具合があれば都度プログラマーと共有し、修正をおこないます。不具合箇所の確認や修正の実施については、すべて記録に残し、報告書にまとめます。
報告書の仕様についてもプロジェクトごとに変わりますが、設計書や仕様書をすでに作成しているため、そのまま報告書に代用することも可能です。作成したテスト設計に準じた方法でテストをおこない、得られた結果と修正内容について記録します。
■ スケジュール管理・進捗管理
開発には思いがけないトラブルが発生するため、作業の遅れも織り込んでスケジュール管理をおこなうことが大切です。基本設計を元に誰がどこの実装をおこなうかをスケジュールに落とし込み、自分だけでなくチーム全員に共有することで、メンバーの協力を得ながら開発を進めます。
スケジュール管理が甘いと納期直前でバタバタしてしまうため、テクニカルディレクターとしての手腕が問われるタスクでもあります。スケジュール管理のポイントは、メンバーのスキルと不測の事態を十分考慮した計画や進捗の見える化です。
テクニカルディレクターの独断で計画を立てると、そのとおりにこなせないメンバーがいるとすぐに計画が崩れてしまいます。メンバーの力量を見極めた上で計画を立て、全員に時間を意識してもらうよう、進捗ペースは日々共有できるようにしておくことが大切です。
■ 品質管理
品質管理とは、成果物がスムーズに動作するかを確認する工程です。ただし、成果物が全て完成してから品質管理をしていたのでは、ほころびが出た際に芋づる式にトラブルが発生してしまいます。
完成した後で膨大な量の修正に取り掛かることのないように、作業工程ごとにチェック表などを用意して、メンバーと自分とでダブルチェックできるような体制にしておくと、スムーズな品質管理ができるようになります。
もちろん、チェック項目を細かくしすぎると今度は作業がなかなか進まなくなってしまうこともあるため、作業を進める中で試行錯誤しながら最適化していくことになります。
1-2. テクニカルディレクターが開発を失敗させないためのポイント
■ 方向性・納期の設定を定める
テクニカルディレクターとしてオフショア開発をスムーズに進めるためには、具体的なゴールを示し、細かくスケジューリングすることが大切です。オフショア開発でよくあるトラブルの例として、現地のプログラマーが指示されていないからやらなかった、自分は違うやり方の方がやりやすかったといったケースが多々見受けられます。
意図を察してくれる、大まかな指示をすれば通じるなど、日本と同じようには進みません。指示は漏れなく明確に仕様書にまとめ、指示通り進んでいるかも細かくチェックすることが大切です。納期を守ることは、プログラマーではなくディレクターの仕事であることを覚悟しなければなりません。
■ バッファを持たせた作業見積をする
オフショア開発では日本では起きないようなトラブルが発生するケースが多々あるため、普段よりも余裕のあるバッファを持たせたスケジュールを組むことが、開発を失敗させないポイントのひとつです。
もちろんバッファを余分に入れすぎると納期の遅れに繋がるデメリットも持ち合わせてはいますし、バッファを取りすぎることはプログラマーがだらけてしまい、パフォーマンスの低下を引き起こす恐れもあります。
ですが、オフショア開発の流れに慣れるまでは、できるだけ多くの余裕を確保しておく方が安全策と言えます。プログラマーの力量がある程度把握でき、お互いが仕事に慣れてきたタイミングで、少しずつ調整していくと良いでしょう。
■ オフショア開発チームとのコミュニケーションを増やす
オフショア開発では、母国語が異なる人間同士がコミュニケーションを取りながら開発を進めていく必要があります。
例えば英語でコミュニケーションを取る場合、お互いが第二言語でやりとりをするため、お互いを理解しようと両者から歩み寄りをすることで業務をスムーズに進められるようになりますが、細かいニュアンスが伝わらないことが課題になることもあります。
文章だけでなく図解して説明するなどの工夫が必要になります。単純にやりとりの回数を増やすだけでもお互いの意図を汲み取れるようになるため、様々な方法でコミュニケーションをはかることが大切です。
2. オフショア開発におけるテクニカルディレクターの必要なスキル
テクニカルディレクターはプロジェクトを統括するためのスキルと現場を理解するためのスキルをバランス良く取得する必要があります。
2-1. コーディングスキル
テクニカルディレクターは現場に近い立場でマネジメントをする立場にあるため、基本的なコーディングスキルが求められます。実際にコーディングするのはプログラマーがおこなうため、自らの手でコーディングをする機会はあまり多くありませんが、プログラマーの進捗を確認するために必要なスキルです。
仕様書の指示通りの業務がおこなわれているかの確認、バグが起こりそうな部分の指摘やフィードバックなどをおこないます。
2-2. マネジメントスキル
テクニカルディレクターは現場のチームを取り仕切る役割を担っているため、業務の進捗を見ながらスケジュールを調整し、プログラマーとのコミュニケーションを密に取ることも仕事のひとつです。
適切に管理をおこなうためのマネジメントスキルを身につければ、日本では起こり得ないようなトラブルに対しても余裕を持って向き合うことが可能になります。頼られる存在になれるよう、常に俯瞰しながら求められる場面でリーダーシップを発揮します。
2-3. アーキテクチャ設計スキル
アーキテクチャ設計とは、システムの基本構造のことを指しています。アーキテクチャはネットワークにもアプリケーションにもデータベースにも存在するものであるため、プロジェクトを俯瞰する立場の人にとって構造を正確に理解するために必要なスキルです。
どの階層のプロダクトの開発をするかによってプログラマーごとにアーキテクチャの重要性が異なりますが、現場のプログラマーにもできるだけ全体も考慮して欲しい場合、テクニカルディレクターがアーキテクチャについて説明する必要が出てきます。
2-4. コミュニケーションスキル
オフショア開発におけるテクニカルディレクターの仕事は、日本のクライアントから要望を聞き出し潜在的なニーズへの提案をおこなうことです。
また、ヒアリングをもとに基本設計や仕様書を作成し、現場の外国人プログラマーに的確に指示をおこないます。クライアントの本音を聞き出すためには傾聴力や質問力が求められ、言葉には多少の障壁があるにせよ意図したことを相手が理解できるように伝える力が必要になります。
日本人に対するコミュニケーションでは発する言葉から隠れた意図を想像し、外国人に対するコミュニケーションでは漏れがないよう細かく正確に指示をおこないます。テクニカルディレクターには双方に柔軟に対応できる高度なコミュニケーションスキルが求められます。
2-5. 語学スキル
日本からの要望を外国人プログラマーに伝えるため、語学スキルがあることに越したことはありません。ただし、ビジネスレベルの英語が必須かというと、それほど高度なスキルでなくてもマネジメントすることは可能です。基本的にはチャットツールでテキストのやりとりができれば問題ありません。
今では翻訳ツールも優秀なものが揃っているため助けになるはずです。ただし、お互いが第二言語で話すことになれば、小さな誤解も生まれるため、伝えて終わりではなくコミュニケーションを密にとって方向性を随時確認します。
3. まとめ
オフショア開発は日本と仕事の進め方が異なるため、作り手の意図や考え方を現場に伝えるテクニカルディレクターの仕事は非常に重要なものになります。日本での業務のように指示を汲み取ってはくれないため具体的で明確な指示をおこない、業務の進め方に慣れるまでは余裕のあるスケジュールの中で進捗確認をおこなう必要があります。
ベトナムのオフショア開発会社比較20選!大手会社を一覧で紹介
「オルグローラボ」では、ベトナムでのラボ型オフショア開発事業を展開しています。オルグローラボを利用すれば、貴社の開発チームにベトナムの優秀なエンジニアを加え、長期的にプロジェクトにアサインすることができます。お客様のニーズに合わせた柔軟なチーム編成が可能ですし、プロジェクト開始から運用まで、継続的なサポートを提供しています。ぜひお気軽にお問い合わせください!