Dvir Segalさんの記事を翻訳して読んだので備忘として残す
テクニカル・リードとシニア・エンジニアの違い
当時、エントリーレベルのSWエンジニアだった私と同僚は、個人貢献者のキャリアパスについて興味を持っていた。答えるべき質問はたくさんあるが、頻繁に繰り返される質問もあった。その中には、「技術リーダーになることの意味は?自分が毎日使っている言語、フレームワーク、ドメインのすべてのビットやバイトに精通している経験豊富なチームメンバーであることと、どう違うのか?
シニアは職務上の役割で、テック・リードはチームでの役割だ。あるいは、シニアとは、設計、工数見積もり、コードレビューの実施、他の人の指導など、技術的な仕事をリードできるだけの専門知識を持つエンジニアのことだ。一方、テクニカル・リードは、技術的な決定やアプローチを担当するチーム内の人物で、ソフトウェア・アーキテクトのようなものだ。それに加えて、モチベーションの向上、キャリア指導、調整、計画といったマネジメント業務も行う。嗚呼、そしてあなたは同時に両方になることができる。
この2つのポジションを線引きするのはかなり難しい。両者は同じ資質を共有しているが、1つ大きく異なる点がある。シニアはそれらのスキルを発揮することが示唆されるのに対し、テック・リードはそれらを習得することが期待されるのだ。
以下の段落では、それぞれの役割の違いを強調するいくつかの主要な属性に焦点を当ててみようと思う。
専門知識
何を知っていて、それをどの程度知っているか。例えば、プログラミング言語を考えてみよう。先輩ならこう言うだろう:「と言うだろうが、技術リードの場合、期待されることは少し異なる:
- 問題を解決する最適な方法を素早く特定することができる。不具合修正であれ、コードレビューであれ、テックリードは即座に「Yを試すべきだ」と言うだろう。彼は、自分の豊富なドメイン経験、プロジェクトのタイムライン、チームメイトの熟練度(彼女の成長過程を考慮に入れて)に基づいて意見を述べる。
- 知っているだけでは十分ではない。どのように知識を得るかがより重要なのだ。よく考えた上で、適切な技術カンファレンスに参加し、見識のある本を読み、サイドプロジェクトをいくつか立ち上げ、ミートアップに参加し、自分に合ったメンターを見つけるようにする。そうすることで、コンセプトやプラットフォームなど、どんなものでも理解する能力を高め、自分の仕事をより良いものにすることができる。
- ソフトウェアエンジニアリングのトレンド(フレームワーク、プラットフォーム、コンセプト、言語など)に敏感であること。多様な情報源を読んだり、ポッドキャストを聞いたり、あるいは自分にとって適切なアプローチをすること。さらに、SWエンジニアリングのブログの1つにプロフィールを維持し、それらのトレンドに関する質問に答えることで、他の人を助けるだけでなく、自分の理解を広げることができます。あなたは他の人に教える専門家になり、それは学ぶための最良の方法として知られている。
- オンライン・オープンソース・リポジトリの作成。基本的に、言語Xを学ぶためには、サンプルプロジェクトを開発すること、たとえ簡単なHello-worldであっても、自分の手を汚すためだけに開発することは、多くのことを教えてくれるだろう。将来、他の人がコメントしたり、共有したり、貢献するかもしれない。
- 自分自身を前進させる。自分の知らないことを知り、そのギャップを埋めるにはどうしたらいいか、もっと理解するにはどうしたらいいか、毎日考える。
- 最後に、世界的に有名なエキスパートになることではなく、その分野で一流のペルソナを評価し、そのペルソナになるためのステップを踏むことだ。
私の経験では、テクニカル・リードは上記のチェックリストに該当する専門知識を少なくとも3つは持っているはずだ。
影響力
シニアとして、あなたの影響力は間違いなく不可欠です。様々な技術的な議論を通じて、また他のチームとのコラボレーションを通じて、あなたはチームメンバーに影響を与える。一方、技術リーダーにはその両方が求められ、顧客や隣接するグループ、組織のリーダーに影響を与えることが求められる。彼は、情報を共有するタイミングと、耳を貸すタイミングを心得ていなければならない。彼の日常的な仕事は、指導と主に傾聴(リーダーとして不可欠なスキル)によって、他者のスキルセットを向上させる手助けをすることだ。
インパクト
あなたが提供する価値。例えば、あなたはある問題を発見し、それを解決するための解決策を考えることができる。自分で解決したかもしれないが、もっと根本的なことは、納得のいく完成に導くことだろう。また、誰も思いつかなかった新しい取り組みや、製品の品質を向上させる既存コードの大幅なリファクタリングが影響するかもしれない。それらの行動(およびそれ以上)は、大量のビジネス価値に変換される。
技術的な専門知識を主な焦点とし、その領域でトップクラスのソフトウェア・エンジニアとなり、その知識で知られるようになることはできるが、技術的なリーダーにはなれない。これら3つの領域のバランスを取ることが重要であり、それぞれの領域で成長できるようにするのは、貢献者個人の責任である。