はじめに
新米エンジニアとして、あるいはチームを引っ張る立場として、日々の業務に追われる中で「どんなエンジニアになりたいか」と立ち止まって考えることはありますか?
この記事では、技術力だけでなく、人間性やチームとの関わり方も含めた理想のエンジニア像について深掘りし、その実現に向けた具体的な考え方や行動について私なりに考えた記事です。
人として・プロフェッショナルエンジニアとしての理想像
プロフェッショナルなエンジニアである前に、私たちは一人の人間です。技術力はもちろん重要ですが、それと同じくらい人間としての成長が、長期的なキャリアにおいてあなたの価値を高めます。
理想のエンジニアとは、単にコードを書くのが速い、難しい問題を解決できるといった技術的な側面だけでなく、以下のような要素を兼ね備えている人だと私は考えます。
-
常に学び続ける姿勢
- 技術トレンドは目まぐるしく変化します
- 好奇心を持ち、新しい知識や技術を積極的に吸収し続けることが不可欠
-
主体性
- 与えられたタスクをこなすだけでなく、自ら課題を見つけ、解決策を提案できる力
-
責任感
- 自分の仕事に責任を持ち、最後までやり遂げるプロ意識
-
コミュニケーション能力
- 技術的な内容を非技術者にも分かりやすく説明したり、チームメンバーと円滑に連携したりする能力
-
変化への適応力
- 予期せぬ問題や状況の変化にも柔軟に対応できる能力
これらは一朝一夕で身につくものではありませんが、日々の意識と行動で確実に育んでいけるものです。
アビリティ(能力)は自分で育てるもの
あなたのアビリティ、つまり技術的な知識や問題解決能力は、誰かが与えてくれるものではなく、あなた自身で積極的に育んでいくべきものです。
-
学習への投資
- 書籍を読む、オンラインコースを受講する、OSSに貢献する、もくもく会に参加するなど
- 学習機会は無限にあり、自分に合った方法で、継続的に学習に時間を投資しましょう
-
実践と経験
- インプットした知識は、実際に手を動かしてアウトプットすることで定着します
- 小さなプロジェクトでも良いので、積極的に開発を行い、経験を積みましょう
-
フィードバックの活用
- コードレビューや同僚からのフィードバックは、自分の成長のための貴重な機会
- 素直に受け止め、改善に活かしましょう
アジリティ(俊敏性)は環境により育つもの
一方で、アジリティ、つまり変化への対応力や素早い意思決定能力は、個人の努力だけでなく、働く環境に大きく左右される側面があります。
アジャイル開発が普及しているのは、まさにこのアジリティをチーム全体で高めるためです。変化の激しい現代において、完璧な計画を立てるよりも、素早く試行錯誤し、方向修正していく能力が求められます。
もしあなたのチームや組織がアジリティを重視する文化であれば、それはあなたのアジリティを育てる最高の環境と言えるでしょう。しかし、もしそうでない場合でも、あなた自身がチーム内で積極的に提案したり、少人数でのプロトタイプ開発を試みたりすることで、少しずつアジリティを高める貢献ができます。
HRTとエンジニアの三大美徳について
エンジニアが成長し、チームがより効果的に機能するためには、特定の心構えが重要です。ここでは、「HRT」と「エンジニアの三大美徳」について解説します。
HRT(謙虚・尊敬・信頼)
HRTとは、以下の頭文字を取ったもので、GoogleのSREの原則としても知られています。
-
Humility(謙虚)
- 自分の限界を認め、間違いを素直に受け入れること
-
Respect(尊敬)
- チームメンバーのスキル、視点、貢献を尊重すること
-
Trust(信頼)
- チームメンバーがお互いに誠実で、能力があると信じること
HRTは、健全なチーム開発において、心理的安全性を高める上で非常に重要な考え方です。メンバーがお互いを尊敬し、信頼し、自分の間違いを恐れずに発言できる環境は、チーム全体のパフォーマンスを向上させます。
HRTがチーム開発で特に役立つ理由
HRTがチーム開発で特に役立つのは、以下の理由からです。
-
円滑なコミュニケーションを促進する
- メンバーがお互いを尊重し、信頼していれば、意見の衝突があったとしても建設的な議論が可能です
-
問題解決能力の向上
- 誰かの間違いを責めるのではなく、問題を共有し、協力して解決策を見つける文化が育ちます
-
学習と成長の促進
- 自分の弱点を素直に認め、他者から学ぶ姿勢が生まれやすくなります
-
心理的安全性の向上
- メンバーが安心して意見を言える環境は、創造性を高め、新しいアイデアが生まれやすくなります
特に、あなたが「先輩エンジニア」としてチームをリードする立場になったとき、HRTを体現することで、チームメンバーが安心して働くことができ、結果としてチーム全体の生産性向上に繋がるでしょう。
エンジニアの三大美徳(怠惰・短期・傲慢)
「エンジニアの三大美徳」とは、ラリー・ウォールが提唱した、プログラマーが持つべき資質です。
-
エンジニアの三大美徳:
-
Laziness(怠惰)
- 手間を省くために自動化したり、再利用可能なコードを書いたりすること
-
Impatience(短気)
- 問題を放置せず、効率的な解決策を追求すること
-
Hubris(傲慢)
- 自分の書いたコードが最高だと信じ、より良いコードを書こうと努力すること
-
Laziness(怠惰)
一見するとネガティブな言葉に聞こえるかもしれませんが、これらはプログラミングにおいて非常にポジティブな意味を持ちます。例えば、「怠惰」は、繰り返し作業を自動化することで、より重要なタスクに時間を割けるようにする効率性の追求です。
これら三大美徳は、自分自身への戒めとして利用するべきです。
例えば、「怠惰」を自らの行動指針とすることで、「この作業はもっと楽にできないか?」「もっと汎用的な仕組みを作れないか?」と常に自問自答し、より良いシステム設計や効率的な開発プロセスを追求する原動力になります。
エンジニアの三大美徳は自分自身への戒めとして利用するべき理由
エンジニアの三大美徳を自分自身への戒めとして利用すべき理由は、あなたのプロフェッショナルとしての成長を促すからです。
-
より良いコードへの追求
- 「怠惰」は、冗長なコードを避け、DRY(Don't Repeat Yourself)原則に従う意識を高めます。「短気」は、パフォーマンスの問題や使いにくいUIを放置せず、改善を促します。「傲慢」は、自分のコードに自信を持ちつつも、さらに上を目指す向上心に繋がります
-
効率性と生産性の向上
- 定型作業の自動化や、ツールの導入など、常に効率を意識するようになります
-
技術的な好奇心の維持
- 「なぜだろう?」「もっと良い方法はないか?」といった探究心を刺激し、技術的な深掘りを促します
これらは、日々の開発において、漫然とタスクをこなすのではなく、常により良いもの、より効率的なものを追求する姿勢を養うための指針となります。
もしも体現できていないとどうなるの?
ここまで読んで、「頭では理解できるけど、なかなか実践できていない…」と感じているかもしれません。そこには、いくつか障壁があるかもしれません。
想定される障壁
-
時間的な制約
- 日々の業務に追われ、自己学習や内省の時間が取れない
-
心理的なハードル
- 自分の弱みを認めるのが怖い、他者からのフィードバックを素直に受け入れられない
-
環境要因
- チームや組織の文化が、上記のような考え方を奨励できなくなる
-
完璧主義
- 全てを完璧にこなそうとしすぎて、一歩踏み出せない
実践の必要性
これらの障壁を乗り越えてでも、上記を実践する必要があるのは、あなたのエンジニアとしての長期的なキャリアと幸福に直結するからです。
-
市場価値の向上
- 新しい技術を学び続け、主体的に課題を解決できるエンジニアは、常に市場から求められます
-
仕事の質の向上
- 効率的で質の高いコードを書けるようになり、結果として仕事の満足度が向上します
-
人間関係の改善
- HRTを実践することで、チームメンバーとの信頼関係が深まり、より働きやすい環境になります
-
ストレスの軽減
- 問題をオープンに話し合える環境では、抱え込みがちなストレスも軽減されます
実践への第一歩
全てを一度に実践しようとする必要はありません。まずは、できることから小さく始めてみましょう。
- 週に1時間でも良いので、技術学習の時間を作る
- IT系のニュースサイトやメディアを触れると良い刺激になります
- Youtubeでも学習の機会が提供されているので積極的に活用すると良いでしょう
- コードレビューの際に、積極的に質問したり、素直にフィードバックを受け入れたりする
- 自身と異なる考えや意見を持つ方の意見を受け入れることは、あなたの価値観を良い方向に導いてくれるかもしれません
- もし我が強いと思う方は、一度相手がどのような表情で聞いているか見てみると良いかもしれません
- チームミーティングで、自分の意見や疑問を一つでも良いので発言してみる
- 自身の理解が正しいか確認することで新たな気づきを得るかもしれません
- コミュニケーションを通して自信や信頼が生まれます
- 自分の書いたコードについて、「もっと良い書き方はないか?」と考えてみる
- AIがレビューしてくれる良い時代になりました
- 可能ならチームメンバーにもレビューしてもらいましょう
まとめ
本記事では、理想のエンジニア像、アビリティとアジリティの重要性、HRTとエンジニアの三大美徳、そしてそれらを実践することの意義について解説しました。
技術は常に進化し、私たちを取り巻く環境も変化し続けます。そんな中で、一人のプロフェッショナルとして、そして人間として成長し続けるために、これらの考え方が少しでもあなたの助けになれば幸いです。
あなたはどんなエンジニアになりたいですか?そして、そのために今日から何を始めますか?