テックリードになった最初の月、週60時間働いた。すべてのPRを自分でレビューした。コミットメントを見せるために遅くまで残った。真夜中のSlackメッセージに返信した。
役職にふさわしいことを証明していると思っていた。実際は燃え尽きてチームをブロックしていた。
昇進したばかりのとき、決定を正当化しなければという声がある。
その声は「最高のエンジニアであれ」と言う — 実際にはチームを有効化すべき。
その声は「すべてを知れ」と言う — 実際には「わからない、調べよう」と言うべき。
その声は「常に対応可能であれ」と言う — 実際には集中時間を守るべき。
その声は「すべての決定を下せ」と言う — 実際にはオーナーシップを委譲すべき。
その声は「誰よりも働け」と言う — 実際には持続可能に働くべき。
最長時間働くこと、あらゆるトピックで最も知識があること、すべてのメッセージに即座に返信すること、すべての決定を自分で下すこと、リードしながら最もコードを書くこと — これで自分を証明しようとする。
持続不可能だ。そしてもっと悪いことに — 実際に悪いリードになる。
すべてを自分でやると、ボトルネックになる。週60時間働きながらチームはレビュー待ちでブロックされている。サイクルが自己増殖する:すべてのPRをレビュー、チームが待つ、もっと働く、チームがもっと待つ。結果?チームが成長しない、燃え尽きる。
すべてを自分でやると、チームが成長しない。レビュー、決定、承認を待っている。ボトルネックになる。
常に対応可能だと、深い集中時間がなくなる。コード品質が落ちる。疲れているから決定が悪くなる。
あらゆるトピックで最も賢くあろうとすると、チームから学ぶのをやめる。「どうせリードが却下する」からアイデアを共有しなくなる。
本物のオーナーシップを委譲しろ。 タスクではなくアウトカムを。
悪い委譲:
「この認証修正のPRを書いてくれる?」
良い委譲:
「認証リファクタリングを任せる。
問題はこれ、タイムラインはこれ。
技術的決定は君がする。
行き詰まったら来て。」
人に決定させろ。 君とは違う選択をすることもある。それでいい。違うことは間違いではない。
君の本能: 「ここはStrategyパターンを使っただろう」
言うべきこと: 「アプローチを説明して」
考えるべきこと: 「動く?メンテナブル?なら問題ない。」
集中時間を守れ。 常に中断可能だと良い仕事はできない。
カレンダーブロッキング:
月-金 9-11am: 深い仕事(Slackオフ、会議なし)
月-金 2-4pm: チーム対応可能(レビュー、質問)
結果: 集中した仕事ができる + チームがアクセスできる
不完全を受け入れろ。 そのPRは完璧である必要はない。リリースして、本番から学んで、イテレートしろ。
役職を手に入れた。もう何かを証明した。今の仕事はチームを成功させること — 最高の個人コントリビューターであることではない。
ICマインドセット: 私のアウトプットが重要。問題を解決する。コードを書く。知る必要がある。
リードマインドセット: チームのアウトプットが重要。問題解決を有効化する。コードを書く人をアンブロックする。知っている人を繋げる。
良いリードは周りの人をより効果的にする。レバレッジはチームであり、個人のアウトプットではない。
私はこれを3ヶ月目あたりに痛い目で学んだ。疲弊し、すべてが遅れ、チームはレビュー待ちでフラストレーションを感じていた。
今は最適化している:私なしでチームがどれだけできるか? 日々の決定に私が必要でなくなるほど、良い仕事をしている。
不健全: すべての決定が君を通る。PRのボトルネック。常に消火活動。チームが許可を求める。君が不可欠。
健全: チームが自律的に決定する。君のレビューなしでPRがマージされる。戦略的思考の時間がある。チームが決定後に報告する。君がPTO中もチームが機能する。
一緒に働いた最高のテックリードは、部屋で一番賢いエンジニアではなかった。他の人を賢くする人だった。
それが仕事だ。ふさわしいことを証明することではない — チームを成功させることだ。
最高のリードは部屋で一番賢いわけではない。部屋を賢くする。
— blanho