エンジニアとして専門的な分野で活動するという目標設定の罠

mobile.twitter.com

昔、Web業界に入る前にある人からプログラミング技術だけではなく、業務知識も知らないと仕事にならないよと教わった。ちなみにここで言う業務知識というのは会計・在庫管理などいわゆるユーザー系企業の基幹システム関連や特定業界の商習慣を指している。その時は素直にアドバイスを受け取りいくつかの本を読んでみたが現在その時の内容はすべて忘れた。

じゃあその人は嘘を言ってたいたかという訳ではない。自分の行かなかったSIer系のシステム開発では重要だったのだろう。ただ、自分の場合はたまたま重視する業界に行かなかった。

なんで活用しなかったのかと言うと、SIerのシステムというのは基本的に社内で使うシステムがメインだ。そのため企業が変わっても業務知識は流用出来る。例えば、基本的な会計の知識は会社ごとに変わる部分は少ない。
反面、Web業界は一般的に社外向けのシステムを構築する。そうなるとターゲット層が違うため知識を横展開することが難しい。今まで教育系のサービスを開発していたのに、フィンテック系のサービスに移動しても今までの業務知識を活用するのは難しい(そのためWeb系は流用しやすい技術面のスキルを重視しがちである)。

冒頭のツイートも恐らく受託(SIer)目線での発言だと思う。受託目線であればそういう知識は強みになるが、Web業界にいる自社開発系のエンジニアとしてキャリアとして有効であるかは自分は疑問である。

目的を具体化

「5〜6年かけて何らかの専門的な分野で活動できるようにする」というのは良さそう目標設定に思えるが、実際には難しい目標設定だと考えている。まず具体的に何をもって目標達成なのかが明確ではない。本を出版するのか、指名で仕事を受注できるのか、特定技術に対してのコミッターになるのかゴールは様々であるが共通として外部の人から観測される必要はある。しかも人によって専門能力を持っているのかどうかは判断も違うし、本人も専門能力を持っていると発信する必要もある。専門的な分野の知見も貯めて、発信も欠かさないというのは実際かなり大変な作業だ(そもそも業務内容が発信出来ないのであればどうするのだろう)。

また専門性も賞味期限がある。7~8年前であれば例えばReactに精通しているのであれば立派な専門性があったが、今Reactが得意ですというのにどれほど価値があるのだろうか。まだReactであるならいいが、廃れてしまった技術であればかなりもったいない。

いやいや特定の技術ではなくて、もっと特定のドメイン分野の話だ。というと先ほどの内容のようにWeb系では特定のドメインに強いことがSIerよりも強く働かない。もし特定のドメインで経験を生かしたいなら、それこそコンサルタントやプロダクトマネージャーになる方がマシだろう。

それよりGoogleの〇〇のポジションのエンジニアになるという目標の方が遥かにロードマップと打ち手が明確で、最悪なれなかったとしても別の外資系企業に入れる確率は高い。

専門の流動性

以前新築を購入した知人にいい家とは何かという質問したことがあった。回答として日当たりや機能性についての内容が来るかと思ったが、内容は「すぐ売れる物件」という非常に現実的な返答だった。

このすぐに現金化しやすいことを流動性が高いと表現される。

そしてエンジニアのスキルを流動性の側面として捉えている人は少ない。一般的により専門性を高めていくと流動性は悪くなる。例えば、iOSのAR分野に非常に強かったとしても、ARのさらにモバイルで提供している企業は少ないのでスキルがあったとしても活かす機会が少ない。しかも、スキルが合致していたとしても賃金・勤務地などの条件のすり合わも必要だ。 もちろん流動性を常に高め続けることが必ずしも最適な戦略ではないが、5~6年も同じ分野の専門性を高めるというのは流動性の面から非常にリスクが高い。

結局どうすればいいんだ

とくに意外性の無い回答になるが、英語力を伸ばすのは今後ますます重要なのではないだろうか。円安で困ることはあっても、今後円高で困ることはここ10年は無いだろう。そうなるとグローバル企業働くか売上をドルで受け取ることは為替の大きな流れに乗ることが出来るのでかなりメリットがある。

また先程の特定の強みの技術を活かすのも日本だとニッチすぎて仕事が無いが、世界まで含めるとそれを欲している企業はありそう。

と、書きつつも自分は英語に関しては何も勉強していないので何も言えないが。