こんにちは、テクニカルディレクターのせーこです。
早いものでLIGに入社して半年が経ちました。入社当初はシステム開発ブランクあり、プロジェクトリーダー経験なし、オフショア開発未経験の自分がテクニカルディレクターなんて務まるのかと不安な思いもありました。しかし、経験豊富で優秀な先輩方にアドバイス・アシストしていただき、なんとか業務にも慣れ、遂行できるようになってきました。
今回は有志で集まっていただいたテクニカルディレクター、ブリッジディレクターのみなさんと「オフショア開発におけるテクニカルディレクターの役割、必要なスキル」についてディスカッションした内容をご紹介します。またこの半年間で私が学んだことについてアウトプットしていきたいと思います。
グローバルな環境で働きたいという思いはあるけどオフショア開発は未経験というエンジニアの方や、海外に関わる仕事をしていてシステム開発やエンジニアという仕事に興味がある方にとって、少しでもお役に立つことができれば幸いです。
▲オンラインミーティング中の様子。私は地方在住のため、オンラインで気軽に相談したり、意見交換、情報交換できる環境がとてもありがたいです!
目次
テクニカルディレクターの役割
私が関わっているプロジェクトでは、フィリピンのエンジニアチームと一緒にオフショア開発を行っています。
LIGのセブ拠点であるCODYにエンジニアが所属しており、実装・テストはCODYのエンジニアにお願いしています。プロジェクトによって、ブリッジディレクター(通訳、ドキュメントの翻訳、セブ拠点のエンジニアのリソース管理、プロジェクトの進捗管理などを行う)の業務をテクニカルディレクターが兼任する場合もあります。
また、テクニカルスキルのあるブリッジディレクターは設計や品質管理などを行う場合もあるようです。テクニカルディレクターとブリッジディレクターの役割は区切りがあるわけではないのですが、どちらかというとテクニカルディレクターは技術寄りの業務、ブリッジディレクターは通訳・翻訳がメイン業務です。
テクニカルディレクターの主な役割を詳しく説明します。
要件定義
プロジェクトの規模によって異なりますが、PMOやPMが担当します。
基本設計
画面設計、DB設計、テスト設計など。
詳細設計
技術選定、仕様策定、画面の詳細設計、DB設計、テスト仕様書の作成など。
開発補助
CODYのエンジニアから仕様や実装方法についての相談を受け、アシストする。
納期に向けたスケジュール管理・進捗管理
納期までにプロジェクトを細分化して、各タスクごとのスケジュールを立てる。工数の見積もり、エンジニアの進捗管理など。
品質管理
コードレビューや納品物の受入確認など。
テクニカルディレクターとして必要なスキルとは?
コーディングスキル
CODYのエンジニアがコーディングするため、テクニカルディレクターが手を動かす機会は少ないです。ただし、コードレビューをする際、コーディングスキルが高いほうがより望ましいと思います。
私はコーディングルールに沿っているのか、バグになりそうなところはないか、意図しないところが修正されていないかなど、基本的なところしかレビューできていません。システムのパフォーマンスや可読性などについてもフィードバックできるように、勉強していきたいと思います。
アーキテクチャ設計スキル
私の場合、前職では社内SEとしてベンダーと社内の関係部署間の仕様調整や進捗管理などの調整業務をメインで担当してきたこともあり、コーディングスキルは高くありません。その場合、どのようなスキルを高める必要があるのかということも合わせて、今回のミーティングに参加していただいたみなさんに聞いてみました。
コーディングが得意ではない場合、アーキテクチャ設計ができれば技術寄りの業務を担当できるのでは? という意見があがりました。アーキテクチャ設計はソフトウェア、アプリ、ネットワーク、データベース、セキュリティ、クラウドなど、幅広い知識が必要となります。
AWS認定試験、IPAの情報処理技術者試験など、みなさん、積極的に資格試験の勉強をされていました。どんな職種でもそうだと思いますが、常に向上心を持って勉強する必要があるということですね!
また、技術選定やお客様に提案するためには最新技術の動向をキャッチアップすることも重要です。私も情報収集を習慣化するようにしたいと思います。
マネジメントスキル
プロジェクトのスケジュール管理、品質管理、リソース管理などを担当するため、マネジメントスキルも必要です。
私はプロジェクトマネジメントの経験がないので、まずはPMBOK(Project Management Body of Knowledge)から学んでみようと思います。
コミュニケーションスキル
お客様の要望をヒアリングする、要望を基にシステムを設計する、エンジニアに仕様を伝える、開発の進捗状況についてチームメンバーと共有するなど、聴く力、伝える力が必要です。
オフショア開発に関わるテクニカルディレクターであれば、特に「文化の違いによる認識のずれを調整する力」が重要ではないかという意見があがりました。「日本人の常識=フィリピン人の常識ではない」ということを常に念頭におきましょう。「これくらい、言わなくてもわかるよね?」という暗黙の了解はありません。
ミスコミュニケーションを防ぐためにテクニカルディレクターのみなさんがどのようなことに気をつけているのか聞いてみたところ、「設計書などのドキュメントを作成する際には、誰が見ても理解できるレベルで詳細に記載するようにしている」、「各エンジニアのスキルレベルを把握し、エンジニアのレベルに合わせて話をするようにしている」など、様々な工夫をされていました。
語学力
基本、業務ではSlackでテキストベースでコミュニケーションを取ることが多く、翻訳ツールを使えばエンジニアに伝えることができますし、案件によってはブリッジディレクターが通訳してくれるため、英語での業務に抵抗がなければ、語学力が高くなくても問題はないと個人的には思います。
ただ、テキストでは伝わりにくいことや仕様が複雑であるときなど、口頭で説明したほうがよい場合があります。また翻訳ツールでは日本語が直訳されることもあるため、自分が意図しない内容で相手に伝わってしまう可能性もあります。
私の場合、思っていることを直接伝えることが難しい場面もあり、もっと話すことができたらミスコミュニケーションを防ぐことができるし、エンジニアと良好な関係を築けるのになと日々思っています。語学力の高いテクニカルディレクターを見ていると、エンジニアから信頼されているなと感じます。
オフショア開発に関わる中で学んだこと
CODYのエンジニアと一緒に仕事をする中で重要だと感じたことは「信頼関係を築く」ということです。お互いに意見が言いやすく、相談しやすい関係であることが理想だと思います。
私が所属するチームでは、テクニカルディレクターからCODYのエンジニアに課題や要望を上げるだけではなく、CODYメンバーからもミーティングで上げてもらい、みんなで解決策について話し合うようにしています。良いことばかりではなく、お互いに言いにくいことも含めて伝えることができる関係であれば、チームとして成長していくことができると思います。
信頼関係は簡単に築くことができるものではありません。日々の積み重ねです。まずは相手の国の文化や価値観を知ることが大事ではないでしょうか。何も知らなかった場合、人間関係にヒビが入る可能性もあります。
例えば、設計書通りの仕様になっていなかった場合、いきなり、なぜ設計書通りになっていないの? なぜ漏れがあるの? と人前で指摘するのは避けましょう。フィリピンの文化では人前で叱ることは絶対にNGだそうです。
テクニカルディレクター、ブリッジディレクターは注意するときは個別に話をするようにしています。何か指摘するときも「あなたを責めるつもりはない」ということを伝え、相手に嫌な思いをさせないように気をつけています。ネガティブな話をするときは先にポジティブなことを一言入れて、ワンクッション置くようにしているなど、相手の国の文化を尊重し、コミュニケーションを図っているようでした。
まとめ
テクニカルディレクターはテクニカルスキル、コミュニケーション力、マネジメントスキル、語学力と様々なスキルが必要とされる職種ですが、海外メンバーと一緒に働くことができることも含め、エンジニアとして成長できる魅力的な職種ではないでしょうか。
私はまだまだひよっこですが、テクニカルディレクターとして自信を持って働くことができるよう、日々精進していきたいと思います。
最後に有志で集まっていただいたテクニカルディレクター、ブリッジディレクターのみなさま、ご協力いただきありがとうございました!