Engineering Lead (エンジニアリングリード) という役割

Engineering Lead (エンジニアリングリード)という役割について、『エンジニアのためのマネジメントキャリアパス』 に書かれていて、今の自分の役割がこれに近かったのでご紹介させて頂きます。

エンジニアのためのマネジメントキャリアパス ―テックリードからCTOまでマネジメントスキル向上ガイド | The Managers Path

「エンジニアリングリード」=「チーム全体の責任を負う管理者」

かつて私が「チーム全体の責任を負う管理者」用に使っていた職務記述書を以下に紹介しておきましょう (このランクの管理者を私は「エンジニアリングリード」と呼んでいました)。

P.99 – 100 より引用

小さな技術的成果はアウトプットすべき

エンジニアリングリードになるとコードを書く作業に費やす時間は減るが、チーム全体の作業の進行を遅らせたり妨げたりしなければ、小規模な技術的成果物の作成 (バグ処理やちょっとした機能の作成など) に携わるべきである。

自分の場合、コードを書く時間は減った。けれど、納期が短かったり Scrum 開発における Sprint の見積りポイントがリリーススケジュールに対して足りないときは、コードを書いたりレビューしたり、開発にも携わっている。

その場合に、上記にも書いてある通り、チーム開発の進行を妨げないように納期がタイトだったり、見積りポイントが大きいタスクは携わらないようにしている。

チーム作業のボトルネックを解消する責任

エンジニアリングリードは、そうしたコードを書く作業以外に、チームの作業の遅滞を招くボトルネックや成功を妨げる問題を突き止め、これを解消する責任を負う。

複数の他チームをまたぐ仕様や要件の確認依頼はエンジニアにとって面倒くさい仕事でボトルネックになりがちなので、こういう役割は積極的に引受けて、自分で対応するか得意なメンバーに依頼している。

組織全体の成功へ貢献するべし

この役を引き受けた者は組織全体の成功に多大な貢献をするものと期待される。

とくに、もっとも価値のあるプロジェクトを見きわめ、そうしたプロジェクトに自身のチームを集中的に従事させる権限を有する。

プロジェクトの範囲調整

そのための取り組みの一環としてエンジニアリングリードはプロダクトリードと緊密に協力してプロジェクトの範囲を調整し、技術的成果物を確実に構築する。

Product Owner や Product Manager とは隔週のミーティングで範囲を調整している。一部の製品については、自分自身が Product Manager の役割もになっているので自分自身でまとめてやってることもある。

チームに必要な人数を確認・確保する

また、エンジニアリングリードはチームに必要な人数を確認し、その確保のための計画立案と 人材募集を行う権限も有する。

2週間に1回、直近で必要な開発プロジェクトとチーム数、それに充てるエンジニアの人数を計算して、チームへの割り振りを考えている。また、慢性的にエンジニア不足と感じた場合、経営陣に打診して、エンジニア採用活動にも取り組んでいる。

異なるスキルセットを持つメンバーを管理する権限と能力

エンジニアリングリードは独立した管理者であり、自分とは異なるスキルセットをもつメンバーから成るチームを管理する権限と能力を有する。

自分は元々、バックエンドエンジニア寄りのエンジニアなので、そういう意味ではバックエンドエンジニアのメンバーの管理が中心です。異なるスキルセットという意味では、フロントエンドエンジニアとの 1on1 も行っていたので、エンジニアという職種内での異なるスキルセットをもつメンバーのいるチーム管理は経験している。

こまめなフィードバック

チームのメンバーに期待する能力や言動、成果は、全員に明確に伝え、個々のメンバーとの間で (勤務評価の期間に限らず常日頃から) こまめにフィードバックを提供し合うべきである。

1-2週間に1回の 1on1 でお伝えするように心掛けている。

製品グループに関する技術的ロードマップを管理する

こうした優れた管理スキルに加えてエンジニアリングリードに求められるのは、(主力) 製品グループに関する技術的ロードマップを管理するリーダーの役割である。

技術的ロードマップを自分自身で作成して示せてはいないが、CTO, Tech Lead, UX Lead らと話して、製品デリバリのためのスケジューリングを調整しつつ、技術的ロードマップに取り込むということはおこなっている。

製品デリバリのスケジューリング

スケジュールと範囲とリスクを主要パートナーに明確に伝え、主要なマイルストーンのデリバリ作業を明確なスケジュールに従って主導する。

社内外の関係者へ製品デリバリのスケジューリングを相談からおこない、マイルストーンを作成して、共有までおこなっている。

技術的負債の解消への CBA

さらに、戦略に関わる技術的負債 (場当たり的なアーキテクチャや余裕のないソフトウェア開発のせいで生じたツケ) を感知し、その解消を見据えた費用対効果分析 (CBA: cost-benefit analysis) を行い、その結果得られた解消優先のスケジュールを経営陣に提示するものとする。

製品開発を継続的におこなっていく上でボトルネックになっている技術的負債について、「負債解消することで hoge の機能開発コストを◯人日ぐらい減らせる」という費用対効果分析をおこなっている。これを CEO, COO, 事業責任者らに共有して、技術的負債返済のための開発時間を確保している。

念の為、補足しておくと「人日」の計算はエンジニア以外への説明をカンタンにするために計算して提示しており、普段の開発見積りで人日計算はおこなっていません。

以上、Engineering Lead (エンジニアリングリード) の役割を自分の仕事と照らし合わせてみた、現場からお送りしました。