40歳を過ぎてもソフトウェアエンジニアを続けてるって話

昨日、ゆのんさん( https://twitter.com/yunon_phys )が社内の勉強会で「エンジニアリングマネージャとは?」って話をしてくれて、面白いなぁって思いながら聞いてた。

その中で「エンジニアリングマネージャが見ることのできる範囲はめちゃ広いから、すべてを完璧にしようとするんじゃなくて、その場に応じてスキマを埋めるような動きができるといい。組織の成長とともにその動きも変わっていく」ってことを言っていて、これって自分のソフトウェアエンジニアとしての動きにも似たところがあるなぁと思ったので雑にメモ。

ソフトウェアエンジニアの見る領域

ソフトウェアエンジニアの見る領域っていろいろある。僕の場合だと自社のウェブサービス開発をしてるので、バックエンド、フロントエンド、サーバ、DB、ネットワーク、セキュリティ、ドメイン知識、などなどいろんな領域に触れる。それが横に広がっているイメージ。

領域には深さがある

そして、それぞれの領域には深さがある。バックエンドだと、土台がある状態でコードが書ける、から、土台となるアーキテクチャを設計できる、とか、運用しやすいつくりにできる、とか。DBも、SQLがかけるところから、スキーマの設計ができたり、DBのチューニングができたりするところとか。

横の領域を見てもキリがないし、深さを見てもキリがなくて、楽しい。

ソフトウェアエンジニアとして範囲を広げていく

最初はひとつの領域の最初の深さのところから入って、徐々にその範囲を横に縦に増やしていく。実際のプロジェクトの中で先輩に教えてもらったり、必要にせまられて範囲が広がったりしていく。

このとき、まずは視野を広げるために横に広げていくのもいいし、自分の中にひとつの軸を持つために縦に深くしていくのもいいなと思う。

僕の場合は、まわりにスペシャリストのチームがいるような組織で成長してきたので、サーバやDBやネットワークなどの深い部分はスペシャリストたちに頼って、自分はアプリケーションエンジニアとしてバックエンドの開発スキルをある程度深掘りしながら、それ以外の部分は薄く横に広げていった感じかな。

「スペシャリストがいるのに、横に広げる意味はあるの?」って思うかもしれないけど、意味はある。浅い知識だとしてもその領域のことを知っていることで「ここはスペシャリストの力を借りたほうがいいな」ということに気づけるし、その領域のスペシャリストと会話ができるようになる。

シニアと呼ばれるころには

そんな風に何年かかけて自分のスキルの範囲が広がって、シニアエンジニアと呼ばれるようになる頃には、だいたいが自分のスキルの範囲内でなんとかなる。

でも、そこで範囲を広げるのをやめずに、ずっと広げていきたいなぁって思うのだった。

「これは自分の知ってる範囲でなんとかなるんだけど、なんかこの機会に別のやり方をチェックしてみようかな」って、まだ自分の知らない横の領域を覗きにいったり、「そこまで掘り下げなくても解決できるんだけど、なんかもうちょっと詳しく理解したいな」と思って深く掘り下げたりして、範囲を広げ続ける。

範囲を広げる活動の中で、自分のこれまで身につけてきたスキルも耕されて新鮮な空気を取り込んで更新されていく。

今のうごき

いまの自分は、フルスタックエンジニアとしてスキマを埋めるようなうごきをしている。

フロントエンドを深く知っているエンジニアがいるので、そこの深い部分は彼に頼って、僕はバックエンドの深い部分を中心に動いてる。それ以外のところはお互いにサポートしあって、あとは社内の強い人たちに相談したりしながら、進めてる。

もう少し広い視点で、エンジニアだけじゃなくて、開発チーム全体として見ると、自分の強みを軸足にして、チームの中のロールのスキマを埋めるような動きを、ゆのんさんも僕も、他のみんなもロールを超えてやってる感じで好き。

大切にしていること

全体に目をやると横にも縦にもキリがない。でも、全部をできるようになんてならなくていいと思っている。僕の中で大切なのは、ずっと好奇心をもって範囲を広げ続けること。

勉強してもしても、知らないことはなくならない。新しい技術もどんどんでてくるし、それによって古い技術も更新されてもういちど学び直しが必要になったりする。知らない領域に手を出すときにはレベル1からなので、まどろっこしい・恥ずかしいという気持ちが出てくる。自分の得意分野で深い部分にたどりついたと思っても、もっと深い場所にいる人たちがたくさんいる。

でも、それによって自分のこれまで得てきたスキルがなくなっているわけではない。知らない領域に飛び込んでも、もっと深い部分があることに気づいても、自分の得てきたスキルはなくならない。

だから、知らないことの存在を新たに知ったときは「面白いなぁ」って気持ち。

どのロールも同じ

こんなことをぼーっと考えてたらプロダクトマネージャーについてAkiさんが似たようなことをつぶやいてて、EMもエンジニアもPdMも、どのロールも同じだなぁって思った。

本当に単純に頭の中をぼーっと書き出しただけ。ちょうど娘のお迎えの時間になったので、こんな感じで!