はじめに
現在、「エンジニアの評価制度」に関わらせていただいているので、その中でエンジニアのキャリアとして大事なポイントをまとめました。
具体的な評価基準についてはここでは触れませんが、エンジニアの皆様の今後のキャリア設計の参考になれば幸いです。
弊社(株式会社Hajimari)は、主にWEB開発を行っております。
この記事に登場する「エンジニア」という言葉は、「WEB開発に携わるソフトウェアエンジニア」を指します。
文章内で断言するような言い方をいくつかしていますが、あくまで私個人の意見です。ご了承ください。
エンジニアのキャリア
まず、エンジニアのキャリアは、大きく分けて2つあります。
・Individual Contributor
・Enginnering Manager
他にも、例えば自社サービスを抱えている企業であれば「Product Manager」のキャリアを設けるなど、企業によって差異がありますが、ここではこの2つに焦点を絞ります。
Individual Contributor
Individual Contributor(以後、IC)は、一般的に「管理責任を負わない専門職」と定義されていますが、その役割は企業によって様々です。「スペシャリスト」という呼び方をしている企業もあります。
技術に特化する
ICは、端的に言うと技術に特化する人です。「技術に特化」すると聞いて、どのようなことを思い浮かべますか?例えば、次のようなことを思い浮かべた人がいるかもしれません。
・コードを書く
・フロントエンド、バックエンド、インフラの技術を幅広く扱える
・使用する言語やフレームワークを深く理解する
これらはある意味では正しいですが、「全て」ではないです。エンジニアがやるべきことの本質は「技術を生かして、会社や世の中の問題を解決し、より良い環境を作ること」です。例えば、法律に困ったときは弁護士や法律に詳しい人へアドバイスを聞きに行ったりしますよね。エンジニアも同じです。専門的な知識を生かして、問題を解決するのが大事な役割です。使用する言語やフレームワークの話は解決のための手段にすぎず、流行り廃りや環境によっても異なるので本質ではありません。
以上を踏まえて、ICとして本当に大事なのは次のポイントです。
①問題の根幹を見抜き、解決策を検討できる
②解決策を出すための土台となる、技術的な知識がある
③人とコミュニケーションを取り、問題点のヒアリングや解決策を提案ができる
④知識をアップデートし続けるための学習習慣を身につけている
大事なのはコミュニケーション
上記のポイントについて一つひとつ書くと長くなるので、ここでは③についてだけ触れます。
一昔前と違い、「エンジニアもコミュニケーション能力が必要」という声はすでに世の中に浸透しているように思いますが、「技術に特化する」となった途端にそのことを忘れてしまう方がいます。
すべての技術は、求める人に届かないと意味がありません。どれだけ素晴らしい公園を作っても、使ってくれる人がいないと意味がないのです。技術を正しい形で正しいところへ届けるためには、「困っている当事者の話を聞く。」「解決策を相手の理解しやすい言葉で説明する。」といったコミュニケーションが必要不可欠です。特に大きいプロジェクトになるほど、期間や予算などの制約が増え、責任も大きくなるので、万が一にも認識の齟齬がないように関係者全員でしっかりコミュニケーションをとる必要があります。
コミュニケーションに苦手意識を感じているエンジニアの方は、今からでも苦手克服の努力してみてはいかがでしょうか。
Enginnering Manager
Enginnering Manager(以後、EM)も会社によって様々な役割がありますが、概ね「エンジニアのマネジメントを行う役職」と定義されていることが多いです。
まず、EMではない、一般的なマネージャーの役割を一例ですが挙げてみます。
・社員の勤怠管理
・社員の育成
・新卒採用/中途採用
EMは、これらに「エンジニア」の文脈が加わります。エンジニアは専門的な知識を有しているので、適切に評価、育成するためには同じく専門的な知識が必要です。それを行うのがEMです。
エンジニアの価値を最大化する
EMの役割は、エンジニアの価値を最大化することです。エンジニアに限った話ではありませんが、人間は様々な要因でパフォーマンスが低下します。
・心と体の健康状態
・チーム内やクライアントとの人間関係
・使用するPCや座席の配置などの職場環境
・評価への不満
EMは、これらの問題を適切に解決する必要があるわけですが、マネジメント対象と同じエンジニア経験があるからこそできることがあります。例えば、私は以前に社内でエンジニアへ貸し出されてるマシンの「スペック見直し」を行ったのですが、これはエンジニアとして「マシンスペック不足によるパフォーマンス低下」の経験があったからこそ思い至った施策です。
エンジニアのための組織作り
ここまでに書いていたのはマネージャーの役割のなかでも、ヒューマンマネジメントの側面だけです。他にも大事な役割として「組織作り」があるので、その一例を挙げます。
・社内におけるエンジニア組織の役割の明確化
・エンジニア全体の技術スタックを鑑みて、より効果的なチーム編成を練る
・チーム内外のコミュニケーションの活性化
これらも全て、エンジニアの価値を最大化することが目的になります。エンジニアが十分に力を発揮すれば、あらゆる問題を解決し、業務の効率が上がる。それが会社の発展につながる、その信念を持って働くのがEMです。
まとめ
ICとEMのどちらにおいても、エンジニアとしての本質(技術を生かして、会社や世の中の問題を解決し、より良い環境を作ること)は変わりません。それは、キャリアを重ね、実戦から離れても同じです。
少しでも会社や世の中がよくなるために、エンジニアが更なる進化、成長を遂げるために何かの参考になれば幸いです。
以上です。