僕がデータ(分析)基盤エンジニアへのキャリアチェンジを選択した最大の理由

 

僕は元々Web屋のフリーランスエンジニアをやっていました。

 

Web屋と一言でいっても、バックエンドやフロントエンドやモバイルやインフラや色々ありますが、僕の場合は近年の需要の流れの中でとりわけモバイル(スマホアプリ)の開発案件を中心にやっていました。

 

ここ5年ぐらいはスマホアプリ開発案件へのエンジニアの引き合いはずっと高く、ここ1,2年は多少落ち着いたものの、まだまだ高単価でエンジニアの募集がかけられているのを目にします。

 

スマホアプリ開発に関しては何案件もリードプログラマとして割と先進的な案件に関わってきたので、正直そのまま続けていても結構な単価で仕事を請けられていたし、割と良い待遇で正社員の職にありつくことも今ならできると思います。

 

だけど、今まで積み上げてきたそれらの技術スタックを完全に捨て去って、データ分析基盤というスマホアプリ開発とは立ち位置的にもスキル的にも対局にあるような領域に飛び込むことに決めたのが1年前です。

 

なので、まだ今の僕にデータエンジニアを名乗る資格も、データ分析基盤のなんたるかを語る資格もないのですが、誰も見ていないだろうからといい加減なことをべらべらと書き綴っていたら、思っているよりもアクセスがあるので、なんか多少でも似た境遇の人の参考になることが書けたら良いなという気持ちになり、今こんな記事を書いています。

 

で、僕がなんであえてデータ分析基盤というニッチで地味目なポジションにスキルシフトしたかというと、もちろん技術的な興味も多分にありますが、何よりも生存戦略上の理由が大きいです。

 

30を過ぎたあたりから、どうやって今後生き残っていくかということを割と切実に考えるようになりました。

 

僕が開発の現場で一番感じていた危機感は、自分が今身に付けている技術や経験の”水物感”です。

 

昨今のフロントエンドの技術の変遷の流れを見ていても分かるように、エンドユーザーに近い位置にある技術というのは半端じゃなくトレンドの波が激しいです。

 

スマホアプリもご多分に漏れず、例えばiOSのアプリなんか3年前ぐらいまでObjective-Cがメインの開発言語だったのに、今はもう新規案件は全てSwiftを採用します。

 

フリーランスというスキルを売る商売をやっているとより痛感しますが、3,4年前に経験した案件や身に付けたスキルが、全部とは言わないまでも50〜70%ぐらいリセットされるという状況に直面するわけです。

 

だって、Objective-CとSwiftって、COBOLJavaぐらい全然違う言語なんですよ。

 

仮に新規のiOS開発の案件で人を取る時に、 

 

Objective-Cの経験10年間 Swift経験0年の32歳

と、

Objective-Cの経験0 Swiftの経験3年の25歳

 

のどちらか取りたいかといえば、少なくとも技術スタックだけで比較したら今なら後者の方が需要が高い可能性もあるわけです。

 

と思っていたら最近はPWAなんかが話題になって実際にReactNativeを採用する企業も出てきていたり、、

 

こんな頻繁に積み木崩しが発生するような領域でじじいになるまで続けてられんわ。。

 

となって、今まで多少なりとも積み上げてきたスマホアプリ開発という技術スタックを全て捨て去ることを決めたわけです。

 

どうせ自分から捨てないでもそのうち勝手に消失していくだろうし。という理屈で。

 

 30間際になって水商売を卒業する感覚。とかいうとスマホアプリ開発やってる人たちに怒られるかもだけど、そういう要素が少なからずあるのは事実。

 

やっぱりイキの良い新人と同じリングの上でガチで殴り合わないといけない領域ってしんどいし、不利だと思うわけです。

 

エンジニアとしての生存戦略についてはすごい時間かけて色々考えましたし、今も考え続けていますが、息長くやる上で一番重要なのは、自分が過去に経験したことや身につけたスキルが陳腐化せずに積み上がっていくかどうかだと思っています。

 

という観点で、

・なるべくエンドユーザーから遠い場所の技術領域
積木くずしが発生しにくい領域
・かつ今後需要が伸びていきポテンシャルのある領域

 

という要素を考えた時に、データエンジニアリング、データ分析基盤という領域はまさにその条件に合致すると思い、今のキャリアを選びました。

 

いや、もちろんデータ分析基盤なんて昨今のデータサイエンスというビックウェーブの流れの渦中に位置しているので、新しいOSSがバンバン出てきているし、技術の移り変わりは相当激しいですが、フロント寄りの技術と違って積み木が崩れにくい性質が強いと思っています。

 

例えばOracleのデータベースについての豊富な経験と実績がある人がいたら、HadoopやらBigQueryやらの最新のスキルスタックをガシガシ使ってるような現場でも普通に採用してくれるところはたくさんあると思います。

 

データベースとかのインフラ寄りの業務というのは、どういうミドルウェアを使おうが現場で求められる能力というのは通底していて、例えば

 

・業務要件に基いて適切なミドルウェアを選定したり、

・テーブル設計したり、

・ハードウェアやサーバーの性能要件見積もったり、

・パフォーマンスチューニングしたり、

 

といったような、特定の製品やフレームワークの知識に依存しないような業務経験がモノを言う領域だったりするからだと思います。

 

これがスマホアプリやWebのフロントエンドだったりすると、Swiftの言語経験とか、iOS10での開発経験とか、Reactの経験とか、より具体的な知識やフレームワークの経験が求められガチだったりします。

 

なので、例えばスマホアプリの開発なんかだと、独学でこんなアプリ作りました、っていう実績があれば普通に即戦力で採用されるチャンスもありますが、インフラの技術を独学で身に付けるのは難しいし、前述の通り業務経験がモノを言う領域なので、若さとやる気だけでは越えられない壁というのがあります。

 

これはすごく重要で、SESとかの人売りだったり、最近話題のプログラミングスクールとかに市場を荒らされにくいのです。

 

たとえば今データサイエンティストの職はSESやSIerやコンサル屋に荒らされまくっていて、ITスクールや講習等も乱立していますが、これはデータ分析職が大学時代の専攻・研究経験や独学での実績を比較的重視される性質があることも大きな理由だと思います。

 

その影に隠れて、データ基盤の領域はなんとなく地味で、花形っぽくないから、社会経験の少ない学生とか若いエンジニアが憧れにくいというイメージ上の問題もあり、そのイメージ自体が参入障壁になっています。

 

これは社会にとっては損失かもですが、僕個人の競争戦略としてはある意味チャンスとも取れます。

 

インフラの中でもとりわけデータ分析基盤ともなると、業務フローや事業のあり方にも深く関わってくる領域なので、色んな事業部の業務要件をとりまとめて全体のシステム構成を考えたり、エンジニアやデータサイエンティストとかと連携しつつ最適なインフラを整備し、改善し続けないといけないため、外部のベンダーに丸ごと外注するのは難しいです。

 

外注ができないということは、誰にでもできる形で業務を切り出すことが難しいことを意味します。

 

つまり、単に技術を知っているだけではダメということです。

 

組織のこと、事業やサービスのこと、会社が抱えているビジネス上の課題、技術上の課題、それらを把握している必要があります。

 

そうなると、新しい技術に対するキャッチアップ能力だけではなく、調整能力、交渉能力、業務遂行能力、課題解決能力、アーキテクト能力などなど、年齢を重ねることによって鍛えられていくような能力が必然的に求められることになります。

 

おっさんになっても最先端の技術に食らいついてエンジニアリング能力だけで食っていくというキャリアがネットでは礼賛されがちですが、僕はおっさんだからこそ発揮できる力を付けたいし、若者には供給できない価値を提供して、結果として会社から必要とされ、高い給与をもらいたいし、おっさんにしかできないことをやってのけるおっさんこそがかっこいいと思っている。

 

最新の技術に対する感度みたいなところだけで若者と張り合っても仕方無く、おっさんにはおっさんの役どころがあると、30を過ぎてそう思うようになりました。

 

つまり、僕はかっこいいおっさんになりたいのでデータ分析基盤という領域を専門にしてキャリアを積み上げていくことに決めました。

 

以上。