40代エンジニア、居場所なし問題を考える
最近40代で居場所を失ったエンジニアの記事を何度か目にしたので、思ったことをつらつらと書いていく。
私の経験談
実のところ、私もそうなりかねないと感じたことがある。
新卒で所属したプロジェクトが当時リリースしてから数年経ったものだった。
配属後は、そのプロジェクトの保守を何年もやることになった。
当然のごとく、使われる技術は古く、何千行もあるクラスもざらだった。
しかし自分は成長していて、優秀だと錯覚していたのだ。
慣れと成長の違い
実のところ、「成果が出る」のほとんどは慣れだと思う。
たとえば「ある機能を実装するのに1週間かかっていたのが、1日でできるようになった」とする。
多くの人はそれを「成長した」と言うだろう。
しかし、その要因は
- どこに何を書けば良いか覚えた
- 今の技術スタックだとどういった書き方が正解か覚えた
- 誰に何を聞けば良いか覚えた
- 仕様書のどこを見れば良いか覚えた
- などなど
であることが多い。
これを成長と言う人もいるだろうが、私はただの「慣れ」だと思う。
なぜならその環境でしか通用しないからだ。
局所的なスキルアップ
当然スキルアップもしない訳ではない。
しかしずっと同じ環境にいるだけでは、その技術スタックに特化したスキルしか身につかない。
機械学習でいう、過学習みたいな感じだ。
そして同じことをやっていると、すぐに停滞してしまう。
「慣れ」で優秀と錯覚する
慣れて、局所的なスキルアップをすると、成果は出るようになる。
一方で新しく入って来た人は、当然のごとく成果が出ない。
すると、「Aさんはすぐに実装できるのにBさんは時間がかかるね」となる。
これで自分は優秀だと錯覚してしまう下地はバッチリだ。
特に、錯覚するためには読みづらいコードであればあるほど良い。
ドキュメントもなく、読みづらく、複雑なコードだと、スキルより慣れが重要になる。
「読まないでも覚えてる人」がより成果が出せるのは当然だ。
良いコードほど読みやすく、新しい人が入ってもキャッチアップしやすい。
しかし「慣れてる人」にとっては、キャッチアップしづらい方が、相対的に成果を出しやすいのだ。
永遠に時が止まった世界
クローズドな空間にいると、その世界が全てだと思ってしまう。
こういった膠着状態を打破するためには、外から最新技術を導入してくれる人が必要である。
しかし残念ながらレガシーな環境に、最新技術をバリバリ使うような人は来づらい。
そういう人は、転職の際にレガシーな環境を避けるからだ。
そして来たとしても、変化が起こるとは限らない。
なぜなら中の人にとって今の環境は心地よいものだ。
したがってそれを壊して導入しようというモチベーションも湧きづらい。
「今は忙しい」「コストに見合わない」「他部署との調整が必要」「セキュリティリスク」だのなんだの言って、変化を拒むことになる。
そうして勘違いしたまま、何年もの時が過ぎてしまうのだ。
居場所を失わないために
ではどうすればこういう状態に陥らないで済むだろうか。
改めて考えてみる。
外から情報を得る
まず、「外から情報を得る」が、真っ先に頭に浮かぶ。
ただ残念なことに、こういった状態に陥ってるとき、外から情報を得るモチベーションが湧きづらい。
なぜなら世の中の情報が、自分と関係ない技術ばかりになるからだ。
たとえばJavaScript+jqueryだけ使っている人が、「Reactの記事」や「TypeScript勉強会」があっても興味をわかないだろう。
レガシーな技術を使っていると、自然と世の中のトレンドと乖離して、外部情報に興味がなくなってしまう。
したがって自分がもしそうなってるとしたら、だいぶ危ないかもしれない。
仕事をしすぎない
こうした外から情報を得ようとしない状況は、仕事を頑張りすぎてる時こそなりやすい。
というのも毎日開発に追われ仕事と睡眠だけの生活だと、外部から情報を得るタイミングがないからだ。
職場が全てとなってしまい、どんどん外部との乖離が進んでしまう。
私自身、眼精疲労になるまで仕事に没頭した時期もあったが、その職場を離れた後の方が成長速度が上がった自覚がある。
もちろん余った時間を自己投資に割かなければ意味はないが、仕事に追われている限りそもそもその選択肢を選ぶことができないだろう。
未知の環境に触れ続ける
これも「外から情報を得る」の一種とも言えるが、未知の環境に触れ続けるのが一番かなと思う。
これは別のチーム・部署もそうだし、新しい会社、新しい業界、新しい国、勉強会、コミュニティなど様々だ。
結局のところ、別の世界に触れないと見えないことがある。
大学時代の友人と話して感じたこと
私はずっとWeb系の業界にいるため、社会人になってから出会う人の属性はなんだかんだ一致している。
しかし大学時代の友人は、同じエンジニアだったとしても、インフラ系の大企業や、コンサルなど幅広い。
そういった人とたまに話をして、全然世界観が違うことをヒシヒシと感じることがある。
たとえばコンサルの人は、クラウドの話になると「AWS」「アジュール」の2つの単語がやたら出てくるのだ。
AWSはわかる。
だけど「アジュール?それ出すならGCPじゃない?」って思うのが率直な感想だった。
話を聞くと、その業界だとGCPなんてほとんど話題に上がらないらしい。
理由はおそらくだが、昔Tokyo Regionがあったのがアジュールだけで、法律的な問題でアジュールが選ばれることが多かったそうだ。
その後AWSのシェアが広まった結果選ばれるようになり、今はその2つに2分されてるのかもしれないとのことだった。
勉強熱心な人なので最新技術を追っているとは思う。
ただそれでもところどころ価値観が合わなくて、その違いが面白かった。
おわり
ということで、記事から思ったことをつれづれとまとめてみた。
どれも当たり前のことばかりだが、自分の中で改めて意識していきたい。
余談
ちなみに、過去記事では、むしろ同じプロジェクトに残ることも推奨している。
なぜならそれは、技術力を身につけなくても評価される生き方だからだ。
「新しい技術の勉強辛い」って人には、むしろ願ったり叶ったりの生き方だろう。
実際に周りにもそれで出世をして、技術メインではない方向に行って、さらに評価を伸ばしてる人もいる。
レガシーな環境を辞めたいと環境を変え続けて、なかなか評価されない人もいる。
なので人によっては良い選択になり得ることは、最後に補足しておきたい。