イケてるエンジニアに共通する働き方とはなんなのか
最近の気づき
エンジニアにはギーク気質の人が多いが、その気質を仕事に活かせる人とそうでない人がいること、ギーク気質ではないのにうまくいっている人がいることに今まで疑問をもっていた。
この問いへの答えは自分が良いと思ったものを信じて推し進める力があるかどうかだと感じた。
意識せずともそれができる天性のエンジニア気質みたいな人ははエンジニアには多いし、そのような人たちはどんどん昇進していくが、自分はそうではなかったので一般人ができるかぎり天性のエンジニアに近づける方法を自分なりにまとめてみた。
ジュニアエンジニアだとこれから話す新しい技術の導入は自分には縁のない話だと思われるかもしれないが、たとえば生成AIに関しては経験値のハンディキャップが少ないし、一部無料で使えるものもある(もちろん業務情報を入れる場合は学習のオプトアウト等社内ルールに則らなければならない)。
技術を知る
当然技術を知らなければ何も始まらない。ここで言う技術は言語、フレームワークとかに限らず、開発プロセスだったりだとか思考法だったりだとか色々含まれる。
技術について詳しくなる方法は先人たちがかなり研究しているし、人それぞれ向き不向きがあって話すと長くなるから割愛する。
技術を自分で使ってみる
いろいろと手を出すのは難しいし、なんでもかんでも触ろうとすると疲れるが、とりあえず少しは触っておかないと良し悪しの判断がつけられない。
チームで導入することに価値があること(ペアプロとか開発プロセスとか)だとここをすっ飛ばしてチームでやってみようとなりがちだが、推進者が技術について知らなければメンバーもその流れに乗るべきかどうか判断に困るし、メリットデメリットを理解したうえで進むということが難しくなる。生成AI使うでもなんでもとにかく一人で触ってみることがほとんどの場合良い。どうしても無理であればその分野に絞ったインプットをかなり多くするか、二人とかの少人数で始める。
技術を自分のアイデンティティにする
とにかく○○といえばこの人みたいなイメージをもってもらうようにアウトプットを続ける。アウトプットをすることで自分自身からも周囲からもアウトプットを得ることができるし、このあとの流れも円滑になる。
技術を使える時間を増やす
新しい技術の導入はある意味投資であるから、投資する時間的リソースが必要だし、投資への決断を後押しする材料が必要になる。
前者に関しては普段やってる業務の効率化だったり、普段の業務への新技術の投入だったりする。やってみたいことのために仕事を頑張るというのは仕事への短期的なモチベーションにつながる。社会に貢献するとかビジネス上の課題を解決するとか、そういう中長期的なモチベーションに比べて持続時間が短い代わり、爆発的なエネルギーを生む。仕事が早い人はこのエネルギーの有効活用が上手いことが多い。
後者に関しては技術のアウトプットによって味方を増やしていくことと自分で使ってみて仮説検証を深めることで技術の有効性を確かめることが必要になる。
技術に限定しない文脈で使われている言葉でジョブ・クラフティングという概念がある。これは簡単に言えば自分の働き方を作業、人間関係、認知の観点から見直すことで自発的に仕事を行い、モチベーションとパフォーマンスの向上を図る取り組みのことである。この考え方を詳細に説明することは本題から外れるが、今回のコンテキスト以外でも有効的な考え方なのでぜひ調べていただきたい。
技術を実績にする
技術が良いものだという確信が得られるころには地盤固めもすんでいるはずなので技術を組織に展開していく。また、定量的な成果を集めることでそれを自分の実績として残す。
技術を知るところに戻る
最初と同じように技術ブログでインプットしてもいいが、技術を組織にスケールアウトした際に生じた問題を解決する、技術がちゃんと有効活用できているかどうか定量的に観測するための指標を導入するなどのように前にやったことと関連付けた技術があれば連鎖的に新しい技術を見つけていくことができる。
まとめ
社会人としてやっていく以上、やりたくない仕事もやらなければいけないのだが、結局成長するには自分がやりたいことを推進力にするしかない。
Discussion