2021/3/25

生き残るエンジニアになるために、今持つべき「判断軸」とは

NewsPicks Brand Design Editor
 企業の急速なDXの推進などを背景に、ますますITエンジニアの需要が高まっている
 巷では「楽をして稼げる」といった情報も出回り、さまざまな求人が溢れているが、どのような基準で企業を選択すれば「より良いエンジニアキャリア」を築けるのか、正解が見えずにいる人も多いだろう。
 将来的に「食べていける」エンジニアになるために、今どのようなスキルを磨くべきなのか。
 エンジニア組織のアドバイザリーを行うレクター 取締役の広木大地氏と、自社構築による動画配信ネットワークを有し、企業向けOVP(Online Video Platform)で国内最大規模の導入実績を誇るJストリーム アーキテクトの大川高志氏の対談を通して、そのヒントを読み解く。

ITエンジニアは本当に「楽して稼げる仕事」か

広木 近年、エンジニアという職業の捉えられ方が大きく変わっています。
 プログラミングスクールやキャリア系のYouTuberなどは、「簡単に年収1000万円」とか「最速でキャリアを積める」といったニュアンスで発信しています。
 僕はミクシィの新卒採用1期生で、大学入学前後でITバブルが来て、在学中にライブドア事件が起きた世代です。
 親からは「ITとかWebの業界って大丈夫なの?」と心配されたくらいで、少なくとも、「高収入だから」と目標にされる職業ではありませんでした。
大川 私もエンジニア歴約20年になりますが、正直ここまで「高収入扱い」される日が来るとは思いませんでした。
 私は、子どもの頃に買ってもらったパソコン「MSX」や「PC-98」を触るのがただただ楽しかった。今もその延長みたいなものですし(笑)。
広木 正当に評価されるようになったのはいいことです。しかし「楽して稼げるからエンジニアになる」という言説にはやはり違和感があります。
 たしかにエンジニアの求人は増えているし、年収ベースも上がってきてはいる。その理由は、エンジニアが希少だからで、なぜ希少かというと、一人前になるのにそれなりの時間をかけて勉強する必要があるからです。
 今、日の目を見ているエンジニアって、儲かるか儲からないかわからない頃から、「楽しいから」という理由でこの仕事を選んだ、大川さんみたいな人たちなんですよ。
全職業平均の有効求人倍率と比較し、情報処理・通信技術者(エンジニアを含めた情報処理、通信技術に携わる職)の平均は高水準となっている。出所:政府統計e-Stat 一般職業紹介状況『職業安定業務統計』
大川 もし私が「エンジニア向き」だとしたら、それは「課題を設定し、使えるものを最大限活用して、困難な課題をクリアすることを楽しめる点」ですね。
広木 僕に関して言えば、思ったようにプログラムが動いた瞬間や完成した瞬間の面白さが一番。新しい技術を使って実現したいことがあるから、「勉強だ」という意識はあまりなかったです。
大川 わかります。動画配信システムの開発では、1分間にDVD何枚分もの「巨大なデータ」が送られてきます。そして、それを瞬時に、かつ連続的に処理する必要がある。クライアントが大企業であるほど、案件の規模も大きく緊張感が高いですが、これは面白いな、と。
 加えて、Jストリームは国内のデータセンターに自前の配信環境を持ち、CDNの自社構築をはじめ、インフラ、バックエンド、フロントエンド、データ分析等の幅広い開発分野をカバーしています。
 ネットワークの物理層からアプリケーション層までの各担当が、直接連携して開発を進めるので、エンジニア個人に求められる視野も広いのも魅力です。
 動画や、それ以外のビッグデータに携わるエンジニアも同じかもしれませんが、一番面白いのは「巨大で複雑なものを、エンジニアリングで制する」みたいな感覚だと思います。
 それを実現するためのチューニングを追究したり、ボトルネックを見つけて改善したりするのは、ゲーム感覚に近いかもしれません。
広木 たしかに「大容量」や「リアルタイム性」は、結構なエンジニアにとって、「挑んでみたい壁」ですよね。
 そういう面白さを見つけられるかどうかは、どれだけ手を動かしたかにかかっています。自己分析でいくら自分を掘ってみても、実際に行動しなければ面白いかどうかもわからない。
 個人のWILLを大事にして、まずは「技術が楽しくて仕方ない」というところに身を置く
 そのうえで開発にとことん打ち込み、「そこで築いたキャリアが、ある瞬間に時代の中心になったらラッキー」くらいの姿勢でいるのがいいのではないでしょうか。

企業は「エンジニア文化」の理解に努めよ

広木 では、「良いエンジニア」を、企業はどのようにして採用していくべきか。
 まず、CTO直下の組織や、人事部内のエンジニア採用に特化したチームが採用を担当している企業は強いです。
 ただ、採用活動をほかの職種と一緒くたにしていると、なかなかうまくいきません。たとえば「マーケター、セールス、エンジニア合わせて5人採用」というとき、倍率が高いエンジニアよりも、採用が相対的に楽な職種にばかり目が向いてしまいますから。
大川 私は、Jストリームに中途入社して4年目になります。現在、技術部隊のアーキテクトとして技術責任者を務め、エンジニアの目線から当社のエンジニア採用および成長環境を整えているところです。
 実は私がJストリームに入社したときは、一人の採用担当者が営業と制作と技術の3部門を担当していました。
 それを見て、まずはエンジニアと非エンジニアの採用を分けて、エンジニアの採用はエンジニアがコントロールする体制づくりが第一歩だと感じました。
広木 「どうすればエンジニアを採用できますか」と非エンジニアの経営者や人事担当の方から聞かれたら、僕は「飛び込んでみないとわかりませんよ」と答えています。
 採用がうまくいっている企業の担当者ほど、エンジニアカルチャーにどっぷりつかることで、どういうキーワードが最近エンジニアにウケるか、狙っている候補者がどこにいるかを把握しているんです。
大川 当社もエンジニアと非エンジニア採用の担当分けを行い、私はエンジニアのHRBP(HRビジネスパートナー)を務めています。
 エンジニアとそれ以外の人では、同じニュースを見ていても注目するポイントが違うし、「いい会社だな」と感じる部分も違う。
 エンジニアからすると、オープンな発信やコミュニティ活動に力を入れている企業はポイントが高いです。
広木 経営トップが「うちの会社は素晴らしい」と発信することも重要ですが、それはどこの会社でもしていて、真実味を感じづらいものです。
 逆に、「この会社イケてるな」とか「楽しそうだな」「技術に理解がありそうだな」というイメージは、エンジニア同士が行う勉強会や技術ブログなどで感じ取られ、形成されていきます。
 ですから、自社エンジニアの勉強会やOSS開発、またブログやQiitaなどの、個人による技術情報の発信を、積極的に支援するのも採用ブランディングの一環。
 社員の一人ひとりが、オープンな(=透明性のある)発信者として、社外のコミュニティに関わることが一層重要になるのです。
大川 Jストリームも以前は、情報を外に出すことに対するリスクを考慮し、クローズドな傾向がありました。
 でも機密情報ならともかく、「こういう開発が楽しかった」みたいなエンジニアの声はどんどん出すべきですよね。私もエンジニア採用を見るようになってからは、コミュニティとの関係づくりや情報発信に力を入れました。
 たとえば、「Tokyo Video Tech」という、動画エンジニアのコミュニティに立ち上げ初期から携わったり、JANOG(日本ネットワーク・オペレーターズ・グループ)というネットワーク運用者のコミュニティに会社をあげて参加するよう促したり。
 オープンな風土づくりのために、社内での情報共有を促進させようと、定期的な勉強会も実施しています。
広木 Jストリームは歴史があるぶん、組織運営や採用に関してもベンチャーとは違った難しさがあるでしょうね。
大川 そうですね。採用を見据え、技術方針を変更したのも大きな改革でした。
 現在移行中ですが、私が責任者に就任後、LuaやPerlといったレガシーな言語から、PythonやReactなどモダンな言語への切り替えに着手しました。開発手法もシェルスクリプトなどが主流でしたが、フレームワークを使ったものへ変えました。
 Jストリームは25期目を迎える企業なので、25年間のノウハウが詰まっているレガシーを捨てるのは難しい決断でしたし、現在働いている人にとっては大変な面もあります。
 ですが、自社の開発力向上や採用、ひいては会社全体の利益を考えれば、今やらなくてはいけない。
 たとえば、「Pythonにそろそろ触れておかないと先がないのでは」と考える採用対象者が最近は多い。求人の中にそういうワードが入っていれば、「この会社で10年後を見据えたキャリアを積もう」と思えます。
 社内のメンバーも、自分が開発している言語やシステムについて検索したとき、新しい情報が多く出てくるほど、「ほかのエンジニアもみんなやっているんだ」「時代に置いていかれていない」と安心できるし、「Jストリームでちゃんとキャリアを積めている」と自信を持つことができます。

エンジニアのコアは「流行り廃り」に左右されない

広木 VPoE(Vice President of Engineering)やHRBP(HRビジネスパートナー)という言葉も聞かれるようになりましたが、採用も考慮したうえでの技術選定の方針に切り替えたり、専任の採用チームを組成するという決断に経営層がゴーサインを出せるかは、大きな分かれ目です。
 当然、レガシーなアーキテクチャのままでも機能を追加することはできるけど、高いクオリティを出すのが難しかったり、出せてもすごい時間がかかったりと、やはり限界がある。
 だから、新しい言語や技術は当然取り入れていかないといけない。
大川 同じエンジニアでもインフラ担当とサービス(アプリケーション)開発担当では、特に新しいことに取り組むとき、衝突が起こりがちです。
 インフラはどちらかというと安定志向で、一度ちゃんと動いたものをあまり触りたくない気持ちもある。
 でも、サービス開発としては、必要な環境にどんどん切り替えていきたい。たとえば、PHPのサーバー依頼で、開発サイドは『バージョン7』を期待していたのに、用意されたのは昔ながらの『バージョン5.2』でした、といったすれ違いはよくあること。
 その齟齬を解消するため、社内の開発環境をオープンソース化し、『プライベートクラウド』を整備しました。
 ここでは、REST APIをベースにして、APIを叩けば開発者が欲しいサーバーが自動生成されます。
 変化の激しい動画配信業界において、必要な部分だけを素早く更新できるよう、マイクロサービスアーキテクチャを使用。小さな機能をたくさん作って連携させています。
iSotck:scanrail
 また、組織体制も「事業カット」から「技術カット」へと切り替えました。
 これにより、たとえばサーバーサイドエンジニアならばプロダクトに関係なく、社内のすべてのサーバーサイドに関わる技術に携われるようになります。
 今は、確たる技術をもとに開発組織の土台を固める時期だと考えてのことです。
広木 技術選定やアーキテクチャは採用だけでなく、組織問題にも密接に関係します。これは「コンウェイの法則」と呼ばれる、よく知られた経験則です。
 また、経営の観点からは、どこで自社開発にこだわり、どこで外部の技術をうまく使うかというのも重要なテーマですよね。
 たとえば、先ほど名前が出たReactは、Facebookが開発をはじめ、その後、オープンソース化して、世界中のエンジニアが開発に参加しています。
 それにより、クオリティがどんどん上がっているので、企業としてはこの領域を社内のリソースで対抗するのは厳しいし、多くの場合する必要もない。
 事業としてSPA(Single Page Application)のフレームワークを強みと位置づけていないのであれば、このようにコモディティ化している技術を採用したり、コミュニティに関わって取り入れたりするほうがリーズナブルです。
 つまり、何を取り入れ、何を自社の強みにするかは、新しい技術を積極的に調べ、現場で実際に使ってみた人、つまり開発エンジニアでないと、技術の良さや勘所がなかなかつかめない。
 技術のコモディティ化の加速とともに、ソフトウェアの陳腐化サイクルも早まっていて、資産として積み上げてきたものの価値が暴落する恐れもある。
 組織にも技術にも、事業のコアとなる要素には定期的な先行投資が必要です。
 そしてそれは、CTOのように経営の中にソフトウェアという資産を適切に取り扱う専門の人材がいないと難しいでしょう。
大川 まったく同感です。ほかにも、Jストリームとしては、SaaSやクラウド利用など新しい技術に対応しつつ、オンプレミスへのこだわりや、「インフラ含め、最初から最後まで全部自分たちでやる」という姿勢も大事にしていきたいですね。
 正直、Amazon Web Services(AWS)やMicrosoft Azureの登場で、「メニュー画面でポチポチやれば機能は作れる」という感覚のエンジニアも増えてきている。
 Jストリームに入社した新入社員に、「AWSで組んでいた機能を自分で作ってみて」とオーダーを出すと、「自分で作るのがこんなに面白いなんて初めて知った」という人が結構いるんです。
 処理のシステムを自分で作れると、ほかのサービスの中身も想像しやすくなる。開発の勘所が掴めるようになるのだと思います。
iStock:4X-image
広木 もし動画配信が強みのサービスでなければ、AWSなりMicrosoft Azureなり、別のサービスを使って楽をするのは全然ありでしょうね。
 でもJストリームは、動画配信の問題解決が事業のコアコンピタンスですから、クラウドで楽をするだけだと、事業の優位性がなくなってしまう。
 動画配信のクオリティ実現に全力を注いできたことによって、他社が模倣できない技術を蓄積してきたのでしょう。
 この「模倣できないものを作る」のは、「最新の技術をただ単につかう」だけではダメで、「地道なエンジニアリングの積み重ね」でしかできません。
 そして、そこで得られる課題解決のスキル自体は、使用している技術、言語、サービスは変化してもこの数十年陳腐化していないと思います。
大川 エンジニアとして20年やってきたからこそ、おっしゃることがよくわかります。技術の流行り廃りはあっても、エンジニアとしてのコアは変わりません。
「なんでこのコードが動いているかわからないけど、動いてるからいい」なんて話があるじゃないですか。
 でも、そうじゃない。「いや、なんで動いているのか自分で納得するまで調べたい」というのが本物のエンジニアですよね。
 うれしいことに、最近は若手が「タスクとしては完了しましたが、納得できてない部分もあるのでもう少し詰めたい」と申し出てくれるケースも増えています。
広木 それは素晴らしいですね。「高収入」という結果よりも、「楽しさ」という過程に価値を見出せるエンジニアのほうが、結局のところ自分らしいキャリアを積み上げられる。
 それを理解し、成長できる場所を用意できる企業がこれからも生き残っていけるのだと思います。
大川 実際には、エンジニアの発想を非エンジニアの経営者が完全に理解するのは困難です。
ですが、Jストリームは財政的に安定していることもあり、小手先でなく、エンジニアのコアをじっくり育成したいという思いにも応えてくれます。
 また、私が技術開発や組織改定で切り込むときにも、経営陣がエンジニア出身か否かにかかわらず後ろ盾になってくれ、話し合ってアンサーを出そうとするカルチャーもある。
 たとえJストリームでなくとも、そういった環境で経験を積み、大成するエンジニアがどんどん生まれてくれるとうれしいですね。