エンジニアリングディレクターの役割

Sha Alibhai    
経験豊富なフルスタック技術のソフトウェア開発者。著者・YouTuberでもあり、現在はヘルステックや医療輸送の分野で活躍しています。
この記事は、著者の許可を得て配信しています。
https://www.hashtagcoder.dev/blog/director-of-engineering/

私はこれまでのキャリアの中では、常に自分を追い込んでくれるような組織の一員であり、本当に環境には恵まれてきました。現在の会社であるラウンドトリップ社に入社した時、私はソフトウェアエンジニアでした。当時、Roundtripというヘルスケア輸送分野の会社は、私を含めて6人の従業員しかいない、創業したてのスタートアップ企業でした。チームが成長するにつれ、私の直属の上司であるCTO(最高技術責任者)が通常業務から離れていく必要が出てきたため、私は必要に迫られてそのポジションに就くことになりました。私の業務上の責任は変わりましたが、当時は組織図上の私のポジションは変わりませんでした。

私への期待は、どういうものなのか分かりませんでした。しかし、エンジニアを見つけ、技術的なレビューや個人的なレビューを扱い、チームを前進させるためのプロセスを作成することでチームを成長させなければならないことだけは分かっていました。それに加えて、自分の責任の範疇はどこまでなのかを3年が経ち理解できるようになりました。ようやく自分の責任と、このポジションが組織にもたらす価値について自信を持って話せるようになってきたのです。最近では、自分の役割をマインドマップして、各部分を細分化し、期待値を細かく分解することに挑戦しました。

リーダーシップ

個別ミーティング、面談の実施

私の個人的なミッションは、世界に通用する製品を生み出すエンジニアリングチームを作ることです。これは社員一人一人にかかっています。社員のモチベーション、感情、スキル、どのようなことを期待しているかを理解し、管理し、目標設定するのを手助けし、個人的、仕事上の問題を取り除き、給料や現在の役割に満足してもらうことが大事なのです。こうすることで、社員の集中力を維持し、質の高い成果を出すことにつながります。私は週に一度、チームのメンバーと個別にミーティングを行い、チームのニーズを把握し、意見を聞く機会を設けています。

採用

最高のチームを作るためには、最高の人材を見つけなければなりません。採用する人材は、既存のチームの少なくとも半分以上の人よりも優れた人材でなければなりません。そうすることでチームの質を高く保ち、チームの誰もが常に前向きに、課題に取り組める環境を整えることができるのです。

採用は役職に関しての業務だけではありません。それだけではなく、チームのニーズにマッチした人材を見つけるのが仕事です。私はチームの弱点やニーズを特定し、それを補完する人材を見つけるように配慮しながら、チームに必要な人材を見つけています。もし自分のチームにパワフルで行動力のある人材がいても、リーダーになれる人材がいない場合は、その点に焦点を当てた人材を採用するようにしています。全体的に、私は個人の弱点ではなく、個人の強みを評価して採用しています。そうすることで、バランスの取れた素晴らしいチームを作ることができるからです。

エンジニアリング成長マップの設定

進歩はモチベーションを高めるためには重要なポイントです。人は自己に挑戦し続けるために、自分に何を期待されているかを知る必要があります。「自分のしたいと思っている仕事(役目)にふさわしい服を着なさい」という諺があります。私のチームでもこの諺に沿った行動するようにチームに伝えています。各ポジションごとに期待値と成功プロファイルを設定し、個別のミーティングでそれを測定することで、キャリアアップの道筋が明確に設定され、何を達成する必要があるのかが分かりやすくなります。誰かがコンピテンシー(高い業績や成果につながる行動特性)を示せば、昇格が現実味を増してくるでしょう。

私は以前、とにかく頑張れば昇進できると思っていました。肩書きが付くポジション以外にも、色んな役割が存在する理由を理解していなかったからです。それを理解した今では、少し違う見方をするようになりました。私のチームに所属する一人が一生懸命働いているなら、その人をその場所で活躍させるべきだと思っています。そうすることで、業務が進むからです。そういう人材が一人でもいれば、周りにもそのいい影響が広まり、チーム全体が成長します。

コア・バリュー(中核的価値観)の強化

私にとってコア・バリューは、チームのそれぞれが適切なポジションにいるかどうかを確認するための主な原動力です。私にとって、自分が信じている価値観を持った組織に所属することはとても重要なことです。例えば、ラウンドトリップには次の5つの価値観があります。

・所有権
・積極性
・レジリエンス(反発性・弾力性)
・とにかく聞く
・常にシンプルに

この5つの価値観に沿って業務をするように自分やチームの仲間が責任を持つことで、チームのレベルを常に高く保つことができます。

私たちの使命に向かって

私たち全員が同じ目標に向かって前進し続けるためには、ミッションを私たちの真理の源とし、指針となる光とすることが一番です。私たちが目標を達成するために確実に一歩ずつ前進できるようにするために、すべての人、プロセス、イニシアチブは、ミッションに対して評価されるべきです。

ラウンドトリップが成長していく中で、私たちはそのミッションを共感することを忘れないようにしています。私たちのような企業は、ともすれば高額の料金を支払ってくれるクライアントのニーズだけにフォーカスした「成長組織」になりがちです。しかし、医療への障壁となっている移動をなくすことで、十分なサービスを受けられていない人々を支援しようとする使命感を持った組織として、収益に大きく貢献していない顧客も同様に重要な存在であることを忘れてはなりません。このメッセージを常に伝えていくことが、すべてのリーダーの責任です。

プロセスマネジメント

ソフトウェア開発のライフサイクル

優れたソフトウェア開発ライフサイクル(SDLC)は、予測可能であり、一貫して高品質のソフトウェアを提供してくれるものです。私はしばらくの間、執行役から離れていました。エンジニアリングディレクターは全員はコーディングのための時間がほとんどありませんが、私は今でも業務を完了させるまでの責任を負っています。

ここでの適切なバランスとは、私がアウトプット、価値、コストに焦点を当て、一方でチームが成果に焦点を当てることです。私には、ある機能を作るのに何時間かかるか、スプリントごとに達成できるポイントは何点か、チームの運営を維持するためのコストはいくらになるかを報告する責任があります。私はきちんと測定できるものしか管理できません。

チームの拡大

チームの規模を拡大する際の私の責任は、二つの方向に向いています。下向きには、適切な人材を見つけ、適材適所にそれぞれのメンバーを配置することが私の責任です。上向きには、コストと最適化の問題があります。企業の収益向上に貢献するためには、予算内に収まるように業務をしなければなりません。問題解決のためにお金をかけるのは簡単ですが、財務的な責任を考慮しつつ問題を解決し、会社がより直線的に成長するのに貢献するのはとても難しいことです。

新しいチームメンバーが入ってきたときに、彼らが成功するために必要なコンテキストを提供するための新人研修のプロセスを作成する責任が私にはあります。私は、新人研修を3つの段階に分けて行います。第一段階は、彼らが「それを理解している」ことを確認することです。ここでは、組織、問題の範囲、既存のプロセスを紹介します。次の段階は、彼らが「それを望んでいる」ことを確認することです。この新人研修の期間中に、新入社員のそれぞれが適切な動機と意欲を持っていることを確認します。ここで、私は彼らを当社のコア・バリューに照らし合わせて評価し始めます。彼らのためにいくつかの目標を設定します。最後に、彼らが「できる」ことを確認します。チームの他のメンバーに挑戦することができるだろうか?彼らがチームのレベルを上げてくれる存在なのか?私にとっての成功とは、チームのニーズに合わせて常に進化するプロセスを維持することであり、私の尺度は健全なエンジニアリング文化を持つことです。

技術戦略の定義

ラウンドトリップのテクノロジーチームは、エンジニアリングとプロダクトの2つのパートに分かれています。エンジニアリングチームは「どのように」、プロダクトチームは「何を」に焦点を当てています。私には製品のロードマップを設定する責任はありませんが、チームが直面している課題を解決するのは私の責任です。週に一度のミーティングでは、ロードマップに載せるべきものを戦略的に検討しています。技術的な負債の解決からインフラの強化に至るまで、ミーティングで話し合います。

もう一つは、クライアントの刻々と変化するニーズを満たすために製品を設計することです。以前は、ソリューションを作成する技術的なところにも深く関わっていましたが、最近では、他の業務を集中して見ています。チームに任せられるようにするために、自分自身がこの仕事から手を引く必要があったのです。

EOS

会社を経営するのは簡単なことではありません。ラウンドトリップでは、同じ方向に進むためにいくつかのシステムを試してきましたが、最もメリットがあったのはEOSでした。組織のリーダーとしての私の責任は、レベル10ミーティングを実行することです。このミーティングで、自分たちの進捗状況を確認し、問題を迅速に特定し、解決することができるように問題に取り組むようにしています。

製品の方向性

ロードマップのためのリソーシング

Ben Horowitz氏は、企業の2つのステージを「平時と戦時」と定義しています。平時は、顧客のためにより良いプロセスを作るために製品を構築することに集中して、成長する期間が長くなります。この時、製品チームはロードマップを設定し、私はエンジニアリングチームに適切なリソースを確保して、物事を確実に成し遂げるようにしなければなりません。戦時というのは、例えば不景気の時などのことを指しますが、こういう状況ではロードマップとプロセスを最適化しなければなりません。戦時には、リソースに制限がある可能性が高く、製品チームは利用可能なリソースに基づいてロードマップを設定しなければなりません。収益、顧客の維持、獲得を促進するためのイニシアチブに集中することに重点を置くようにしています。そして、適した人材を採用することよりも、すでに今いる人材に適した仕事を見つけることで、可能な限り予算を使わないようにするように仕事内容をシフトすべきなのです。

デプロイメントの管理

エンジニアリングディレクターとして、一貫した納品を確実に行っていかなければなりません。もし納品に弊害があるとすれば、私はチームにコーチングしなければなりません。デプロイメントは通常、ソフトウェアを提供する最後の部分であり、最も困難な部分です。そのため、しっかりとしたプロセスがあるかどうかを確認するように配慮しています。

また、デプロイメントがクライアントと私のチームの両方に与える影響も考慮しなければなりません。クライアントが可能な限り影響を感じないようにする一方で、変なタイミングでのデプロイメントのせいでチームに悪影響が出ないようにすることは、難しいのです。クライアントとチームのバランスを保つのは本当に困難です。

インテグレーションの監督

困難は成長を伴います。しかし、技術的な観点から見ると、コントロールできないサードパーティーからの影響が多いため、これらの取り組みは最も大きなリスクを伴うものです。私は、当初の技術的な議論から実装、導入、新人研修に至るまで、物事がスムーズに進むように、実行されているプロセスに目を光らせています。要するに、私たちはファーストインプレッションで、チャンスを得られるようにしないといけません。

アクセスコントロール

必要なものだけにアクセスできるようにすることで、リスクを制限しているものもあります。しかし、これには別の側面もあります。私は、チームが権限を与えられたと感じ、自分たちが作っている製品を所有していると感じられるようにしたいと考えています。私は、スマートに物事を進めるために頭の良い人を雇い、彼らにタスクやアクセス権を与え、彼らがコントロールできていると感じられるようにしています。

特徴の構築 VS  特徴の購入

最近はサービスが増えてきているので、他の製品を追加するだけで簡単に製品を作ることができるようになりました。しかし、そうすることで、機能のコントロール性や具体性が失われてしまいます。開発者としては、すべてを自分たちで作ろうと決定するのは簡単なことです。しかし、そうすることで時間を失い、複雑さが増してしまいます。

私の立場では、コストを最適化し、物事をシンプルに保つために、常に「構築vs購入」の議論を頭の中で行っています。全体的には、どちらの方が最高の投資収益率になるのかを考えなければいけません。

まとめ

エンジニアリングリーダーとは、やりがいのある仕事です。人に対しても技術に対しても、多くの責任があります。これは本質的に、最大の問題に対する責任を自分が負わなければいけないということを意味し、悪いことが重なることもよくあります。スケジュールや予測もできず、標準的な9-17時の仕事というよりは、障害物を取り除くまでの仕事であることは間違いありません。しかし、もしあなたがその挑戦を受け入れるならば、あなたの仕事の直接的な結果が人と製品の両方に必ず現れます。この役職は信じられないほどやりがいのある仕事なのです。


コメントを読む

新着ピック  






















新着ニュース

LOAD BALANCER là gì ? | Developers.IO

LOAD BALANCER là gì ? | Dev...

DevelopersIO / 7時間前


16年間秋葉原のニュース届け続ける「アキバBlog」、一時的に更新停止 管理人が脳梗塞で

BigQuery のテーブルコピーではテーブルプロパティも全てコピーされるのかどうか確認してみた | Developers.IO

[アップデート] AWS Direct Connect のフェイルオーバーテストが実行可能になりました | Developers.IO

[VIM]Scalaの入力補完をAdoptOpenJDK+coc-metalsでやってみた | Developers.IO

SpaceXがFalcon 9ロケットでStarlink衛星群をさらに60基打ち上げ、ロケット再利用の記録も更新 | TechCrunch Japan

SpaceXがFalcon 9ロケットでStarlin...

TechCrunch Japan / 11時間前


Migrate MySQL database từ EC2 sang RDS | Developers.IO

Migrate MySQL database từ E...

DevelopersIO / 12時間前


神戸市、日本MSと包括連携協定 スマートシティー実現目指す

「誹謗中傷ホットライン」設立へ ネット上の被害者や投稿削除に悩むプロパイダの相談に対応

VOCALOIDじゃない「初音ミク NT」、3カ月遅れでプロトタイプ版リリース

Sumo LogicにGuardDutyのログをS3から取り込む方法 | Developers.IO

Serverless FrameworkでデプロイしようとしたらUnknown path formatというエラーで詰まった話 | Developers.IO

「オンライン化した発表会」はどんな存在だったのか

コードを書かない系エンジニア(プリセールスエンジニア)の仕事と価値 | Developers.IO

RIZAP、本社社員を基本在宅勤務に IT活用で業務効率が向上、オフィス面積の削減も視野

[アップデート] 委任したメンバーアカウントで Config ルール/適合パックを Organizations 組織全体にデプロイできるようになりました | Developers.IO

新型コロナ禍で神戸市がマイクロソフトと包括連携、Power Virtual Agentsでチャットボット、Twilioで音声自動案内などを構築 | TechCrunch Japan

デジカメのWebカメラ化ソフト続々 ソニーも「対応を検討中」

懐かしのiPod Shuffle風 SpigenのAirPods Proカバー「クラシック・シャッフル」を試す

EC2の不揮発性ブロックストレージ「インスタンスストア」を使ってみよう! | Developers.IO

もっと見る
記事をPICKする
会員登録
Register
記事をPICKする

会員登録すると、もっと便利に利用できます。