エンジニアのキャリアの方向性

CTO の舘野 (id:secondlife) です。丁度1年半ほど前に、クックパッドの CTO になり、自分が20代の時に憧れていたいわゆるハッカーとは違う道を歩んだという事もあり、ソフトウェアエンジニア*1のキャリアってどんな物があるんだろうと改めて考えた時期がありました。

しかしながら一人悶々と考えても、答えが見つかる物でも無かったので、私の先を行く方々の話を聞きたいんですよね、みたいな事を md2inao で有名な WEB+DB PRESS 編集長の稲尾さんとしていたところ、じゃあそれ連載記事でどうですか、とお話を貰ったので記事として連載させて頂きました*2

その時、連絡させていただいたメールにはこんなことを書いていました。

背景としては、今やエンジニアは、サーバサイドは AWS/heroku 等 IaaS/PaaS の台頭、github を中心とした OSS フレームワーク・ライブラリのエコシステムの発展、等々により学習の高速道路が整備され、サービスを作るために必要な技術を学ぶコストが、昔より低くなってきたと感じてます。

こうなると、若いうちは良いのですが、30を超え始めると、特に最新の流行の技術の部分では技術が大好きな若者に勝てなくなってきてしまいます。

プログラマ35歳定年説じゃありませんが、自分のポジションを取り、何の技術を選択して、どのスキルを磨くのか、しっかりと考えて行かないとある一定の年齢を超えると徐々に価値が下がってしまうのも事実だと思ってます。

そのため、この先エンジニアが生き残るにはどうすればいいのか、実際にキャリアを築いて活躍するエンジニアの方々にインタビューさせていただき、若者にキャリアプランを示したり、こんな生き方もあるんだよ、という話しを記事にしたいと考えております。

私が今考えるエンジニアのキャリアプランは大きく分類するとこの3つがあるのかなぁ、と思ってまして

1.経営者(CTOなど)・技術マネージャ

様々な技術の知識やマネジメント力があるからこそ、組織にあった技術戦略を考え、会社や社員を導き育てる人

2. 技術スペシャリスト

歳を重ねても技術を吸収し磨き続け深い知識があるからこそ、活躍できるエンジニア

3. サービススペシャリスト

ユーザに向けてアプリやサービスなどを提供し続けるエンジニア。技術もできるが、その技術をエンドユーザの価値に直接結びつけられる人。

これらの方々にお話を伺いたいと思ってます。

そんなこんなでキャリアの方向性を考えだしてから、6名の方々にインタビューさせていただきました。

みなさん 1~3 のどれか・もしくは複数のキャリアに属しており、各々が強みとする技術を生かしつつキャリアを築いています。中途半端な技術ではなく、しっかりと強みとなる技術を持っていることで、マネジメントだったり、さらに広く知識を深めていったり、ユーザに対して大きな価値を生めるのでしょう。

私が社内のエンジニアと面談するときは、年齢や時期にもよるんですが、若手のエンジニアには強みの分野を持てるように、自分が興味がある技術*3に打ち込んで伸ばす、30前後になってきたら、その強みを生かしつつもどんなキャリアを歩んでいきたいのか、具体的に方向性を示しつつも考えてもらっています。技術をさらに深めプロフェッショナルなエンジニアになっていくのか、ユーザー価値を考えプロダクトに反映できるエンジニアになりたいのか。それともマネジメントで組織を引っ張っていくエンジニアになりたいのか。

またプライベートを含めた自分の状況に照らし合わせて考えてみることも大切で、家庭をしっかりもちつつも活躍しているひげぽん(蓑輪太郎)さんが 限られた時間をどう使うか で話されている内容に大きなヒントがありました。

というわけで、皆さんも時々はどんな道を歩んでいたいのか、時々は立ち止まって方向性を考えてみてはいかがでしょうか。 業界的に、明確なキャリアパスがなく、ゴールが描きにくいのですが、それは私たちが普段行ってる開発と同じですね。不明瞭なゴールに対して、どう明確化していくのか、イテレーションをまわしつつ KPT で定期的に振り返ったりしつつ、進む方向性を考え続ける。キャリアについても何となく進んでしまわずに、定期的に考えることで、自分がどんな技術を学ぶべきなのか、立ち振る舞いはどうすべきかとったことが見えてくるはずです。

*1:なおこの文脈のエンジニアは、クックパッドのように主にユーザにサービスを提供するような企業におけるソフトウェアエンジニアです

*2:連載してると締め切りドリブンで必ず前に進むのでいいですね!忙しい時期は辛いけど…

*3:好奇心があり、モチベーションがあって学び続けられることは重要