「SIerはメモリ2GBのマシンで開発してる」ってどこの世界の話ですか?

今ネットで話題になってる怪文書について。

anond.hatelabo.jp

 

ネットでよく流れてくるあるあるネタとして「メモリ2〜4GBのマシンで開発」「ファイル名_日付でバージョン管理」「スクショエビデンス」みたいなのと同じ系統だけど、正直この手の話って全くリアリティ無いんだよね。

 

一応自分も3年前ぐらいに某NTTのグループ企業の一社と仕事したことあるけど、そこの現場ではメモリ16GBの新品のMac bookが各エンジニアに支給されていたよ。(プロパー、協力会社関係無く)

 

ちなみにコミュニケーションツールにはSlackが使われてて、バージョン管理はGitLabだった。

 

そこ以外にもフリーランスとしていくつかのSIerやその子会社を渡り歩いてきたけど、今時どの現場行ってもGitが使われてるし(Git以外が使われてる現場を見たこと無い)、RedmineやBacklogみたいな何らかのチケット管理ツールが使われてるし、ましてメモリ2GBのマシンで開発してる現場なんて見たことも聞いたことも無い。

 

例えば今いるNTTとは全然系列が違うSIerの開発現場でも、メモリ16GBのノートPCと外部ディスプレイのマルチディスプレイ環境でみんな開発してるし(自分の携わってる案件以外も含めて全フロアで)、自分が関わってる案件では検証用にメモリ64GBのサーバー用マシンをレンタルして、そこに複数の仮想マシン立てて自由に使ってたりする。

 

バージョン管理はやはりGitLabが使われてて、チケット管理やコミュニケーションはRedmineベースで、エビデンスなんかは検証手順やソースコードRedmineに記載して再現可能な形で記録するようになってる。

 

繰り返しになるけど、今の現場が特殊なのではなく、自分が今まで関わってきたSIerの開発現場はどこも似たようなもんだった。

 

だから、冒頭に貼り付けた記事にあるような「メモリ2GBのマシンで開発」とか「ファイル名_日付でバージョン管理」とか「スクショエビデンス」とかいう話ってにわかには信じがたいし、ただの誇張したネタだと思って受け流してきたんだけど、どうもマジなんじゃないかっていうリアクションが多くて困惑してる。

 

しいて言うと、コミュニケーションツールに関してはSlackやスカイプ等のチャットツールの使用率は半分ぐらいで、現場によっては未だメールベースでやりとりしてるところは結構ある印象。

 

とはいえ、開発用PCのメモリ2GBとか、日付でバージョン管理とかはさすがに見たこと無いわ。

 

けどネットではそれが既成事実として、「だから日系企業はダメなんだ」、「生産性が低いんだ」、みたいな話になってるけど、いやいやちょっと待って、どこの世界の話をしてるの?本当にそんな世界が実在してるの??という。

 

ちなみにSIerと聞くとレガシーな開発環境で技術力が低い人ばかりだというイメージがネット上では強いと思うけど、例えばデータエンジニアリングの世界で言うとHadoopコミュニティへの貢献度では世界でも指折りの企業として知られてるのが、NTTデータだったりする。

ビッグデータ時代をリードする世界第4位のHadoop開発企業|NTTデータ

 

国内でも数えるほどしかいないであろうHadoopのコミッター達が、メモリ2GBのマシンを使い、ファイル名_日付でバージョン管理してるなんてことは、普通に考えてあり得ないと思うんだけど..。

 

もちろんNTTデータといっても部門によって全然違うだろうし、Hadoopコミッタがいる部署ってのはたぶん研究開発とかのごく一部の特殊な部署なのかもしれない。

 

別にNTTデータを擁護するつもりもないし、むしろメモリ16GBのマルチディスプレイでGitを使ってモダンな環境で開発してようがそんなことは関係無く、SIerは構造的にクソである、というのが自分の立場なので。

 

ということで、自分の経験からは冒頭の記事の内容が現実のものであるとは信じがたいんだけど、実際のとこどうなんでしょーか。

 

 

「みんなが憧れるエンジニア」を目指すのは地獄への道かもよ

 アニメ制作でも、漫画家でも、お笑い芸人でも、アイドルでも、基本的にみんなが憧れる職業というのは低賃金のブラック労働と相場が決まっている。

 

これは程度の差こそあれIT業界もしかりで、みんなが憧れるポジション、特に未経験者がやりたいと思ってしまうポジションというのは大体ワナがある。

 

最近のIT業界で言うと、「データサイエンティスト」とか「Web系エンジニア」が分かりやすい例。

 

単純にポジションの取り合いになるから買い手(雇用側)の立場が強くなって価格競争に陥るってのが分かりやすい理由付けだけど、それとは少し別の側面というか見方もある。

 

「名誉」にはめちゃくちゃ金がかかる

 

「憧れの職業で仕事ができる」というプライド自体に値段が付いていて、それは目に見える形で売られてるわけではないけど、実は給料から天引きされてるってカラクリ。

 

なぜお金として差し引かれるかっていうと、みんなが良いと思うものは客観的な価値が伴うので、貨幣に交換できるから。

 

その中でも「みんなが憧れる社会的属性」というのはすごく価値があるので、とりわけ金がかかるわけです。

 

もし「ジブリの映画監督になれる権利」や「AKBのメンバーと結婚できる権利」が売られてたら1億でも払う人は結構いると思う。

 

実際「本を出版できる権利」を売る商売ってのがあって、ネットで「自費出版」でググるとわんさか広告が出てくるけど、それは「本の著者」という社会的属性を名誉だと思う層がいて、一定の換金性があるから。

 

ITエンジニアという職種においても、これと似たようなことがある。

 

同じ仕事内容なのに給料が2.5倍上がった訳

 

自分は最初、ゲームプログラマーとしてゲーム会社に就職した。

その時の月収は15万(額面)だった。ちなみに都内の会社。

 

で、その後ゲーム会社を辞めて普通のIT企業にエンジニアとして就職したら、仕事の内容や求められるスキルセットはほとんど同じなのにいきなり給料が2.5倍になって面を食らった。

 

これは転職それ自体によって給与が上がった面もあるので、単純にゲーム業界とIT業界の給与相場の差額を表してるわけではないけど、基本的にゲーム業界というのは同じエンジニア職でもIT業界全体と比較して給与レンジが一回りほど低い。

 

ゲーム業界で年収400万なら、IT業界に行けば年収500〜600万ぐらいになるイメージ。

 

なぜゲーム業界のエンジニアの給与レンジが低いのかというと、基本的にゲームプログラマーという人種は、ゲームプログラマーに憧れを持ったり、ゲーム制作に憧れて業界に入ってくる人が多いから。

 

ゲーム業界を辞めてIT企業に転職すれば月収が15万アップすると分かっていても、ゲーム作れないなら意味が無いじゃん、と思ってたりする。

 

これはある意味で「ゲームクリエイター」という名誉に毎月15万課金してるのと同じことだとも言える。

 

プライドが手に入るなら給料が低くても幸せなのか?

 

データサイエンティストでもゲームプログラマーでもWeb系エンジニアでも、「本人がプライドを手に入れて幸せを感じられるんなら、別に多少給料低くても良いじゃないか」って考えも一理ある。

 

ただ、これには一つ問題がある。

 

それは、本当にプライドは手に入るのか?って問題。

 

若い頃は割と混同しがちだけど、憧れの職業に付いたからといって、実際にプライドや充足感を感じられるとは全く限らない。

 

人間というのはすごいアナログなデバイスで、いわゆる「やりがい」とか「充実感」とか「プライド」みたいなものは、自分の半径3m以内の人間関係とか評価とかで大方決まってしまったりする。

 

例えば「マルチディスプレイとモダンな開発環境」というイメージに憧れを持っていざ「Web系エンジニア」になったとしても、その現場で自分より明らかに若くて優秀な人に囲まれて、絶対にどうあがいても勝てっこない、明らかに自分は劣っている、と感じたら毎日が苦痛に塗り替わってしまうかもしれない。

 

「名誉」というのは基本的に他人との奪い合いの側面が強いから、自分のプライドをベットしたゼロサムゲームに参加することになる。

 

当然そこにはモチベーションが高く、勝ち気の強い参加者が集う。

 

「なんでこんな名もなき弱小ゲーム会社にこんな化物みたいなプログラマーがいるんだ」みたいな絶望感を味わうこともある。

 

「憧れの職業」でお金もプライドも両方失うかもしれない

 

お金を払った結果それに相当するプライドが手に入るなら、まだ等価交換だから良い。

 

けれど、基本的にやりたくて参入してくる奴が多い競技というのは、全体のレベルが高く、熾烈な競争の中でお金もプライドも失ってしまう可能性がある。

 

実力によって勝ち負けがはっきり付くし、勝ちたいと思ってるプレイヤーが多いし、自分に厳しい人間は他人にも厳しかったりするから、むしろプライドを奪われるリスクがデカかったりする。

 

僕もどちらかというとそっちの部類の人間で、今いる現場でもチームメンバーやクライアントに対して「こいつクソだな。こんな適当な仕事しやがって舐めてんのか」と内心毒づいてしまうこともあるし、あからさまに態度に出てしまっていることもある。

 

これは僕が仕事に対してプライドをかけてしまっているからで、それによって仕事のクオリティが上がる反面、他人に対してどうしても批判的になってしまう。

 

一緒に仕事する人は大変だろうなと思うし、極力抑えるようにはしてても、自分が本気で仕事をすることで少なからず他人のプライドを削ってしまってる面もあるよな、申し訳ないな、って気持ちもあって、だからこそ自分みたいな面倒な人間がたくさんいるような環境では仕事をしたくないと思ってしまう。

 

何が言いたいかというと、世間的な憧れや名誉は実は重要ではなく、半径3m内ぐらいの生活実感とかが「やりがい」や「プライド」の実質であって、むしろみんなが憧れてる業界やポジションは、半径3m内ぐらいで「やりがい」も「プライド」も削られていく可能性が高いかもしれない、ということ。

 

多くの人が憧れてるものに、自分も一緒になって憧れるということは、基本的にはコスパが悪いし、不幸になる可能性が高いと思う。

 

とはいったって、憧れてしまうものはしょうがないし、憧れをコントロールすることはできないから、後は自分で経験したり挫折して実感するしかないんだけどね。

 

だから、こんなことを書いたところでどうということは無いけど、しいて言えるとしたら、早めに憧れの職業に飛び込んで実態を知っておいた方が良いのかもしれない。

 

ずっと大企業勤めで憧れを募らせていって、45歳で満を持してデータサイエンティストやWebエンジニア目指したり、起業目指したりとかは、さすがに取り返し付かないことになりかねないし。

 

たわごとはこの辺で。

ウォーターフォールと人生計画

ITの世界ではウォーターフォール的な考え方が割と根強く残っていて、一部ではそれが批判されているし、自分もクソだと思ってるけど、ITに限らずこの世の中には割とウォーターフォール的な考え方が浸透してるんじゃないかと思う。

 

例えばファイナンシャルプランナーってすごくウォーターフォール的で、「人生設計」みたいな言葉がよく使われるのがそれを物語ってると思う。

 

後はライフプランナーとか、婚活アドバイザーとかも、なんかそういう発想を根っこに感じる。

 

で、こういうウォーターフォール的な考え方で人生計画を考えると、色々な面でかなりのオーバーヘッドが生まれると思ってる。

 

ITプロジェクトをウォーターフォールで進めることで大きなオーバーヘッドが生じるのと全く同じ理由で。

 

ITのプロジェクトにおいてウォーターフォールの何がクソなのかというと、ウォーターフォールという手法やフォーマットの問題というより、ウォーターフォールが前提としている世界認識がそもそも現実と大きくかけ離れてる点だと思う。

 

お客さんの要求は、システムを作る前の段階で事前に全てを把握することが可能で、それらをシステム仕様として完璧に定義することで、過不足無く要求通りのシステムを作り上げることができるし、そのために必要な日数は、標準的な人員リソースを仮定することである程度正確に見積もることができる、という前提。

 

この考え方を適用したがために、ITの世界でどれだけのゴミシステムの山と、それに埋もれたプログラマーの屍の山が築かれてきたかは、業界の身を置く人ならよく知ってると思う。

 

この世界は完璧に計画可能である、そして今回立てた計画は完璧である、という仮定を置くことで、計画が完璧なのに計画通りに行かないのは現実が間違ってるからだ、というムチャな論理展開で、現場のエンジニアに奴隷の如くムチを打ち、現実を歪めようとした結果がITにおける炎上プロジェクトの内実だと思ってる。

 

そもそも要求が間違っていたり、変わったりしてるのに、それを認められない、認めると事前に立てた計画が間違ってたことになってしまうから、最初に決めた仕様通りに開発を進める、みたいな本末転倒が起こる。

 

このウォーターフォール的な考え方を人生計画に当てはめるなら、人生は予測可能で、予測可能であるがゆえに計画可能である、ということになる。

 

個人の経験を振り返ってみても、そんな当初に計画した通りになることはまず無いし、計画以前に自分の人生における大きな要求変更が突然発生したりする。

 

例えば自分の生活条件(健康や家庭環境など)だったり、あるいは自分の人生の中での優先順位や価値基準だったり、世界に対する事実認識だったり。

 

自分の話をすると、20代半ばでITの世界に飛び込んで、駆け出しプログラマーだった時は、一日中プログラミングして飯が食えるなら月収20万ぐらいもらえて最低限の生活さえできればそれだけで幸せだと思っていた。

 

だから待遇が多少悪くても、出来るだけ技術力やプログラミング能力が要求される環境で、目一杯技術に浸かっていたいなんてことを漫然と思っていた。

 

だけど実際に1年、2年と経験を積んでいくと、確かにプログラミングは楽しい、でもどれだけ楽しくても頻繁に大きな仕様変更が入って何度も手戻りを食らったり、厳しいスケジュールを押し付けられて精神的に余裕が無くなったりすると、こんなのは耐えられない、と当初の考えが変わったりする。

 

あるいは、絶対にやりたく無いと思っていたマネジメントをやらされてみると、あれ、これプログラミングでバグ見つけて潰すのと、プロジェクトにおける問題や課題を見つけて潰すのと、そんなにやってること変わらないんじゃないか、と思うようになったり。

 

フリーランスになる前までは、フリーランスになったら1年間の内半年だけ仕事をして、残りはぐうたらした生活を送ろうとか、リモートワークをベースにして家で好きな時にプログラム書く生活をしようとか思ってたりした。

 

だけど、いざ1ヶ月休みを取ってみると、最初の1週間ぐらいでやることが大して無くなって、無味乾燥な時間を浪費するだけでこれなら仕事してた方がマシだと思うようになったり、リモートワークもゴミみたいな案件しか基本転がってないし、実際にやってみると家で作業するのは自分には合わないなと気づいたり。

 

あるいは、元々自分の能力や適正はこの程度だろうと見積もっていたよりも自分の能力が大きく伸びたり、一方である面では思ったより伸びずにダメなままだったりして、自分にとって最適だと思ってた役割や業務形態についての認識が変わったり。

 

という感じで、あんまり事前に強い仮定を置いて計画を立てたり、立てた計画通りにやろうと固執したりすると、その前提となる要求変更が発生した時にそれに気づけなかったり、気づいても軌道修正がきかなかったりと、大きな判断を見誤ることになる可能性がある。

 

だから、20代の時にはITベンチャーで最先端の技術にさえ触れてさえいれば良いと思っていても、実はベンチャーは金が無いから研究開発にリソースがあまり割けなくて、むしろ大企業の方が最先端の技術に触れられる可能性高いじゃんってことに気付いて、5年後には大企業志向に変わってるかもしれない。

 

30代でフリーランスエンジニアになって年収1000万稼げて勝ち組だと思ってたら、40間際になって健康を崩して年収200万になったり、あるいは大企業のエンジニアと比べてリスクと年収のバランスが逆転されてしまい、フリーを辞めて企業に入ろうと思っても企業内で求められる業務経験が不足していて望むような会社に入れなかったり。

 

という感じで、人生の中では自分が思ってもいなかったような大きな要求変更を迫られたりするもんだな、ということを、20代の時はあまり実感しなかったけど、30代半ばになって実感するようになった。

 

自分が今当たり前の前提としていることを疑うことは中々難しいけど、今自分が仮定している前提がひっくり返るかもしれない可能性を常に頭に入れておいて、自分の中での要求変更をすぐに察知できるようにしておこうと心に留めてる。

 

やっぱりおかしいよ日本のIT業界

すでに散々っぱら言われてることだけど、いや、やっぱどう考えてもおかしいだろ、感覚麻痺してないか?ってのを改めてIT業界に身を置く人達に問いたい。

 

以下に、日本のIT業界のおかしさを端的に表した、すごく分かりやすいデータを貼る。

 

f:id:nectarrr:20181028204315p:plain

 IT人材白書2017 p.13 図表1-1-11

 

日本だけIT企業に所属するエンジニアの比率が群を抜いて高い。

 

これが意味するところはつまり「日本のユーザー企業はIT技術者を直接採用せず、ITベンダに外注する傾向が世界に類を見ないほど突出して高い」って話で、まあこれまで散々言われてきたことだし、ITに関わる人はみんながどこかで見聞き、もしくは経験してることではあると思う。

 

じゃあどういう風に外注に出されているのかってのもこれまた散々言われてることだけど、実際に具体例で示した方が実感しやすいと思うので、今話題の富士通さんを引き合いに出させてもらう。

 

学生とかに富士通ってどんなイメージ?って聞いたら、たぶん「富士通株式会社」っていうでっかい1つの会社がそびえ立ってるような印象を口にする人も多いんじゃないかな。

 

IT業界に身を置く人なら、富士通本体の下にシステム子会社が5〜10個ぐらいあって、その子会社に仕事流してるんでしょ?ぐらいのイメージなんじゃないかな。

 

僕もそんな風に思ってたウブな時代があった。ちょっとタカをくくりすぎてたみたい。

 

ということで、実際に富士通のIT子会社一覧をリストアップしてみた。

(ソースは転職クチコミサイトのVorkersで「富士通」で検索して出てきた中から業種が「SIer、ソフト開発、システム運用業界」の会社のみ抜粋した。)

 

富士通エフ・アイ・ピー株式会社
・株式会社富士通エフサス
・株式会社富士通ビー・エス・シー
・株式会社富士通ソーシアルサイエンスラボラトリ
富士通ITマネジメントパートナー株式会社
富士通エフサスシステムズ株式会社
富士通ネットワークソリューションズ株式会社
富士通エレクトロニクス株式会社
・株式会社富士通九州システムズ
富士通エンジニアリングテクノロジーズ株式会社
・株式会社富士通ソフトウェアテクノロジー
・株式会社富士通ワイエフシー
・株式会社富山富士通
富士通九州ネットワークテクノロジーズ株式会社
富士通エフ・アイ・ピーシステムズ株式会社
・株式会社富士通北陸システムズ
・株式会社富士通システムズウェブテクノロジー
・株式会社富士通アドバンストエンジニアリング
・株式会社富士通九州システムサービス
富士通関西中部ネットテック株式会社
富士通クラウドテクノロジーズ株式会社
・株式会社富士通ディフェンスシステムエンジニアリング
・株式会社滋賀富士通ソフトウェア
・株式会社富士通アドバンストシステムズ
・株式会社富士通コンピュータテクノロジー
富士通CIT株式会社
富士通エフサス東日本カスタマサービス株式会社
・株式会社富士通四国インフォテック
・福建富士通通信軟件有限公司
・株式会社富士通フロンテックシステムズ
・株式会社富士通システムズアプリケーション&サポート
富士通東邦ネットワークテクノロジー株式会社
・株式会社富士通新潟システムズ
富士通エフネッツサポート株式会社
・株式会社沖縄富士通システムエンジニアリング
・株式会社富士通鹿児島インフォネット
富士通アプリケーションズ株式会社
・株式会社富士通九州システムエンジニアリング
・株式会社富士通システムソリューションズ
・株式会社富士通中部システムズ
・株式会社富士通ミッションクリティカルシステムズ
・株式会社富士通アドバンストソリューションズ
・株式会社富士通システムズ・ウエスト
・株式会社富士通システムズ・イースト
・株式会社富士通東北システムズ
富士通エフ・アイ・ピー九州株式会社
富士通アプリケーション開発株式会社
富士通エフサス北陸カスタマサービス株式会社
富士通エフサス関西カスタマサービス株式会社
・株式会社富士通山口情報
・株式会社富士通バンキングソリューションズ
富士通ミドルウェア株式会社

 

と、こんな感じ。

正確に数えてないけど50〜60社ぐらいかな。

 

あくまでVorkersに登録されてる企業のみだし、IT・コンピュータ系だけどSIerにはカテゴライズされてない企業や半導体系の企業は除外してるのと、会社名に"富士通"って含まれてないけど富士通のシステム子会社もあるみたいだから、実態は上に挙げた数より全然多いと思う。

 

別に富士通に何の恨みもないけどさ、普通におかしくね?

 

例えば世界的に最大規模のSIer(と言っていいか分からないけど)であるアクセンチュアなんかも、システム小会社なんて数えるほどしかないぜ。

 

IBMとかだって同じ。

 

他にもSI部隊がいる外資のITベンダなんか見ても、こんなポコポコと小会社作りまくってるとこ無いでしょ。

 

上では一例として富士通を引き合いに出したけど、富士通だけが特殊なのか?といえば当然そうではない。

東芝も日立もどこも似たような感じ。

 

「何を今さら」って言うかもしれないけど、IT業界の人間はいつまでこんな状態を放置しとくんだよ、と言いたい。

 

こう言うと、中にはちゃんとした企業もあるし、悪いのは一部の偽装請負とかする企業であって、SESSIer自体は悪く無い、とか言うやつが必ずいるわけだけど、悪いに決まってんだろアホか。

 

そもそもSIerSESのような業態が成立してしまう業界構造それ自体が害悪だから。

 

なぜ害悪なのかという話をすると長くなるので省くけど、簡単に言うと「生産性を上げるインセンティブが失われる」から。むしろ逆インセンティブにすらなる。これは本当に致命的な問題。

 

そういう状況を作ったのは企業であって、そこで働くエンジニアは被害者だろ、っていう人もいるけど、そこに何の疑問も持たず加担する個々のエンジニアも俺は悪いと思う。

 

だってここ5年ぐらいで労働環境って劇的に改善したと思うけど、これってサービス残業を強制したり過労死を招いた企業にみんながめちゃくちゃ怒ってぶっ叩く風潮を作ったからメディアが取り上げて、国が動いて、結果として企業が対応せざるを得なくなったわけでしょ。

 

昔からずっと問題になってるITの多重請負は、みんなそこまで言うほど叩かないから社会問題にならなくて、メディアも取り上げない、結果として国は動かない、ってのが現状だと思う。

 

というわけで、もし日本の特殊なIT業界を少しでも正常化したいなら、SIerやSES企業に親でも殺されたのか?と思うぐらいボロカスに叩くこと。

 

自分が体験したSIerやSESの嫌な体験をネット上で公開すること。

 

そういう記事にアクセスするようにしたり、拡散したりすること。

 

一定のニュースバリューがあるとメディアが判断すれば、それが火種になって、どこかで閾値を越えて一気にガラっと変わる可能性は全然あると思うよ。

 

後は別のアプローチとして、多重請負を規制することを目玉の公約に掲げて、ITエンジニア達からの票を当て込んで国政に立候補すること。

 

思いつく解決策としてはそのぐらいかな。

 

まあそういう自分もSIerやSESに寄生して生きるマフィアの手先みたいな分際だけど、ほらマフィアだって内部の密告者を使って破滅に追い込むのが常套手段ですし。

 

というわけで終わり。

 

データサイエンティスト"だけ"かき集めた日本企業の末路

 

AI がピークを迎えて幻滅期に入るらしい、っていうガートナーの記事がそこらで話題になってるけど、じゃあなぜそうなったのか、そしてその先にどうなるのかってのを考えた。

 

すでに同じテーマの記事を俺なんかより賢い人たちが色々考えて書いてるのになんでわざわざ自分なんかが考える必要があるのかっていうと、一応自分の仕事やキャリアにも影響する話だから。

 

あとは、データサイエンティストとデータエンジニア(大規模データを扱うシステムを構築したり運用したりするエンジニア)の立場では当然意味合いが変わってくるはずで、データエンジニアを自称してる自分にとってどういう意味があるかってのは別で考えなきゃいけない。

 

金が関わってくる話だから。金が関わる話はかなり真剣なんで、俺。

 

例のごとく占いコーナーだと思って読み捨ててくださいませ。

 

ここ1年ぐらい世に多数出回った「AIのPoC案件」の実態

 

フリーランスをやっていると、登録してるエージェント等から色んな案件情報が流れてきたりする。

 

ここ1年ぐらいはAI(機械学習、データ分析)の案件が多く出回ってたわけだけど、その中でも「AIのPoC案件(試しにどんなもんかやってみよう!的な案件)」がかなり目についた。

 

後出しで書くのもあれだけど、その類の案件情報を眺めていれば、ガートナーが発表した通り企業がそう遠く無い先にAIとやらに幻滅することになるだろうことは普通に予想できた。

 

まあ幻滅の仕方にもバリエーションがあるわけだけど、大半は思いつきレベルのお遊び企画で、コンセプトも方針もあやふやな状態で走り出したはいいものの、自分たちじゃ何もできないからコンサルやSIベンダに丸投げ。

 

で、コンサルやSIベンダにいいように吹かされて、PoCという名の大人のおもちゃに大金を課金させられ、半年もするとグズグズになって「あれ?俺たち何やってたんだっけ? ここドコ?」って目が覚めて離散するハメに。

 

成果らしい成果は残らず、金だけが消えていきました、ってオチ。

 

これが、フリーのエンジニアという商流の末端にいる僕のところにここ1年ぐらいたくさん流れ付いてきた「AIのPoC案件」の実態と、結末なんだろうと思って、絶対に関わらないようにしてきた。

 

PoCというワードが付いて、フリーのエンジニアのとこに流れ付いて来る時点でほぼ地雷確定だから。

 

まあ自分の狭い観測範囲に基づく想像と、他の人がネット上で書いてる内容等からの推測で書いてるから実際のとこは知らないけど、たぶん大方当たってるんじゃないのかな。

 

それでもAIの仕事が増えているのはなぜか

 

よく分からないPoC案件に興じてた企業の多くが大した成果も挙げられずAIに幻滅したであろう一方、例えば以下のようなケースもある。

 

元々データの利活用がある程度業務プロセスに組み込まれていて、その中でAIによるさらなるデータ活用推進のための効果検証をしようと試みてたり、あるいは明確な課題があってそれは明らかにAIで解くべき課題なんだけど、そもそもデータが無かったりデータを入れる箱が整備されてなかったりとかで頓挫するケース。

 

これも最近話題になってたね。

AI、データ不足6割 「動かない頭脳」続出の恐れ :日本経済新聞

 

つまり、お遊びでやってましたってパターンと、実際に必要だからやりたい or やろうとしたんだけどそもそもAIやるための環境や準備が全然できてなかったわってパターン。

 

このケースの場合、当然次に来る話としては「じゃあデータちゃんと整備しないと」って展開でしょう。

 

そもそも俺たちに必要なのはデータサイエンティストだったのか?と。

 

というわけで、データ基盤や分析基盤を整備するための仕事は今着々と増えているし、今後も当面増えていく。確実に。

 

その証拠に、ITベンダ最大手のNTTデータ野村総研が数ヶ月前からデータエンジニア募集し出してきてるしね。

 

まあ募集するのは言いんだけどさ、頼むから下請けに丸投げとかすんなよ。。

データ基盤作るのに上流と下流で分業するとか絶対失敗するから。

 

データサイエンティスト”だけ”かき集めた企業の末路

 

ということでようやくタイトルにつながるわけだけど、「AIやろうとしてデータサイエンティスト集めたけどデータなかったし環境もなかった!」って話も、これはこれですごくマヌケなわけですよ。

 

1年くらい前から日本の大企業がデータサイエンティストを大量に採用、育成するみたいなニュースが定期的に話題になってたりしてたわけだけど、一方でデータ基盤作ったりデータの統合を推進するPMやらは全然募集してる気配ないわけ。

 

データサイエンティスト”だけ”かき集めてどうすんの?って結構前から意味不明に思ってたんだよね。(実際にかき集められたかどうかは知らんけど)

 

優秀なレーシングドライバー大量に採用したけど肝心の車が無い。あるのは50ccの原付1台あるだけ。

車を作るエンジニアがいない。

ってかドライバーにレーシングカー作らせちゃえばよくね?

 

みたいなノリだったから。

 

前にも書いたけど、「データサイエンティスト募集!!」って求人の歓迎要件にしれっと「Hadoop等のデータ基盤構築の経験」とか書いてあるパターン、かなり見かけたからね。

 

随分と舐められたもんだよな。

ってかデータサイエンティストにも失礼だしな。

 

そんな舐め腐った日本企業共はこれ読めや、と言いたい。

IT業界で平均年収の高い職種はソフトウェアエンジニアリングマネージャ、データウェアハウスアーキテクト、ソフトウェア開発マネージャなど。米Glassdoor - Publickey

Glassdoorの求人情報においてもっとも平均年収の高い職種は「Software Engineering Manager」で平均が16万3500ドル(1ドル110円換算で1798万5000円)、次が「Data Warehouse Architect」で15万4800ドル(1702万8000円)、そして「Software Development Managerの年収15万3300ドル(1686万3000円)が続きます。

 

君らがデータサイエンティストを採用すれば勝手に付属してくると思ってた”おまけ”は、この記事の中の区分で言う「データウェアハウスアーキテクト」だよね?

 

いいか、なんでこんな高給なのかというとだな、アメリカだからとか、需給バランスの問題とかが当然でかいわけだけど、それに加えて、そもそもが難易度高くて、広範なスキルが求められて、やりたいやつも出来るやつも少ねー仕事だからだよ!! クソが。

 

前に書いたやつ。

データエンジニアに要求されるスキル一覧 - データエンジニアの日記

 

ちなみに上記に書いたのはあくまで技術的な要素のみで、実際はそれに加えてかなりのプロジェクトマネジメント能力が求められる。

 

なぜなら、関わる人や連携するシステムやらユーザーやら利害関係者がたくさんいて、すごく複雑な条件下でお客さんやエンドユーザーの要件を取りまとめて、方針や優先順位を決めて、妥協点を探って、時には説得して、システムに落とし込んでいかないといけないから。

 

何かのサブタスクとして片手間でこなせるような軽い仕事じゃねんだよボケ。

 

おい、聞いてるか?お前のことだN◯C。

 

とか言って実際に求人のURL貼り付けて引用してやろうと思ったけど、面倒臭いことになったら嫌だから止めといた。

 

色んな人がすでに言ってるかもしれないけど、個人的な現場感覚から言っても今現場で一番必要なのは、まさに上で挙げたデータウェアハウスアーキテクトとか、データアーキテクト、データ統合推進マネージャーとか、そういうデータ利活用のための施策を立案したり指揮できる人間だと思うんだよね。

 

機械学習ゴリゴリに実装して最適化するような技術屋じゃなくて、機械学習を多少理解してるエンジニアリングマネージャー的な立場の人間。

 

その中でも特に今は基盤を整備していかないといけないフェーズだから、データエンジニアリングマネージャーが引く手あまた。

 

日本の大企業はそういう人間を高い金払って直接採用すべき。

 

というわけで、データエンジニアのPR記事でした。

 

以上。 

データエンジニアに要求されるスキル一覧

 

現状多くの日本企業ではデータエンジニアという役割を専任で募集を出してるケースがあまり無くて、多くはデータサイエンティスト求人の歓迎要件にさらっと「データ分析基盤の構築経験」とか書かれてたりする。

 

お前らほんと舐めんじゃねーよ。ってことを俺は今日データエンジニアを勝手に代表して言いたい。


まずデータエンジニアとして日々仕事をしていて一番感じることは、扱う技術領域の圧倒的な広さ。

 

たまにフルスタックエンジニアの求人なんかを目にするけど、そこで求められてるのはせいぜいサーバーサイドからフロントエンドまでの、Webアプリケーション開発のスキルスタックで閉じてたりする。

 

それを考えると、今データエンジニアが現場で要求されてる技術領域の広さって、フルスタックエンジニアよりもよっぽどフルスタックなんじゃないかって思う。

 

たぶん今はデータエンジニアリングの黎明期というか、新しい領域として需要が急拡大してて、なおかつ日進月歩でものすごい技術の変化が起こっているところだから、その歪みとして理不尽に広大な知識を求められてしまっている時期じゃないかと思ってる。

 

というわけで、以下にデータエンジニアが求められている技術スタックを、領域別に洗い出してみた。

 

■Webアプリケーションエンジニアとしてのスキル

  • RESTFul API設計
  • Webサーバー
  • DB設計
  • SQL
  • プロキシ/ロードバランサ
  • HTTP
  • セキュリティ(HTTPS/TLS)
  • パフォーマンスチューニング
  • UI(HTML/Javascript)

 

■インフラエンジニアとしてのスキル

 

■SREエンジニアとしてのスキル

  • 構成管理・デプロイ環境の整備
  • ミドルウェアの性能監視、チューニング
  • ログ収集基盤の構築、運用

 

■データエンジニアとしてのスキル

  • データレイクの設計、構築
  • 分散ストレージ・分散DBの設計、構築
  • 分散処理(基盤)の設計、構築
  • データパイプライン設計(Kafka/Spark Stream...etc)
  • データ処理(バッチ処理)
  • データ処理(ストリーム処理)
  • カラムナフォーマット(Apache Arrow…etc)
  • データシリアライザ(Protocol Buffers…etc)
  • 分析環境・BIの構築、連携

 

機械学習エンジニア/データサイエンティストとしてのスキル

  • データ処理(DataFrame)
  • データ可視化(matplotlib/Pandas...etc)
  • 機械学習ライブラリによる統計処理、機械学習モデルの実装


という感じで、複数にまたがった、かなり広範なスキルを求められる現場が多いんじゃないかと思う。

 

もちろん全てを同時的に求められるわけではなく、フェーズや案件毎に移り変わったり拡大、縮小していくイメージ。

 

殴り書きしたので漏れや偏りはあると思うし、当然現場によるだろうけど。

 

データエンジニアに限定してもすごい広大なのに、なぜか今はそれに加えてデータサイエンティストとしての、それはそれ自体でものすごい広さと深さがある役割まで付随してきたりする。

 

というか冒頭で書いた通り”データサイエンティスト”でひとくくりされていて、歓迎要件にサラッと「データ分析基盤の構築経験」とか、おまけみたいに付記してある求人が結構目に付く。

 

そんな兼務でこなせるほど軽い役割じゃないんだが..。 

 

ちなみに上記で挙げたのはあくまで技術的な要素だけだけど、扱うシステムの特性上、多くの現場では技術的なスキルに加えてかなりの上流スキル、いわゆるプロジェクト管理能力が要求される。

この辺は気が向いたら別で書く。

 

正直今の要求水準だと、普通に仕事としてエンジニアやってる人にはデータエンジニアとしての業務はキャパシティ的にきついと思う。

 

本当に趣味と一致してる感じの人じゃないと、たぶん現場で求められるスキルの広さとかスピード感とかに対応できないと思う。

 

能力というより、モチベーション的に。

 

ちなみに自分はほぼ趣味でやってるけど、それでもひぃひぃ言ってます。

 

なので、さすがにそう遠くない先にもうちょい分業化が進むだろうけど、日本の企業は技術ナメてるし疎いから、それに気付き始めるまでに後2,3年ぐらいかかりそう...。

 

炎上プロジェクトに潜り込んで短期間でスキルアップするハック

SIerの多重請負の小規模案件なんかだと、基本的にまともな技術者もプロジェクトマネージャもいないことが多く、プロジェクトのいたるところに不備があってそのままだと炎上必至みたいなケースが多い。

 

そこそこ経験のあるフリーのエンジニアであれば、長年の経験から得た嗅覚でそういう危険な案件を嗅ぎ分けて近づかないようにすると思うけど、自分はあえてそういう案件に突っ込んでいくことがある。

 

プロジェクトが不備だらけで機能してないからこそやりたい放題できるから。

 

例えば優秀なプロジェクトマネージャーやリードプログラマーがちゃんといて、プロジェクトが適切に管理されているような案件なんかだと、自分に与えられた役割のみに徹していれば問題は出ない。

 

それは裏を返せば、限られた役割の範囲でしか経験が積めないということでもある。

 

自分がでしゃばって色々とプロジェクトに口出しする必要もないし、それをしなくても大した事故も起きずに目標地点まで進んでいく。

 

一方で、前述したような多重下請けのダメ案件なんかは、プロジェクトマネージャーやリードプログラマーがまともに機能していないため、そのまま放置しておくとプロジェクトはどんどん制御を失っていってどこかのタイミングで空中分解する。

 

そうなると結局自分の身に大量の火の粉が降りかかってくることになるので、それを回避するために本来ならプロパーのPMの人らが考えないといけないような上流のことまで自分が代わりに考えて、手をうって、軌道修正していく、ということをやらざるを得なくなる。

 

そういう動き方をしていると、形式上はただのひらのメンバーなんだけど、プロジェクトが進むにつれていつの間にか自分がPMやらリードプログラマーやらのポジションを実質的に担うことになってたりする。

 

という感じで、もらうお金に比して割に合わない仕事をするハメになる反面、短期間でものすごい濃密な経験を積むことができる。

 

自分が新しい技術領域のスキルや実績を積みたいと思った時は、あえてそういう危険な香りが漂う案件に突っ込んでいって、実質的に自分がプロジェクトを乗っ取って、上流から下流まで全部やって短期間でスキルと実績を身につけるということをやっている。

 

これまでやってきた技術領域からシフトしたいと思っているけど、実績が少ないがためにチャンスが掴めないでいる人には、そこそこおすすめの方法です。

 

もちろんリスクはあるし、案件の選定がすごい重要になるけど。

下手打つと火だるまになるので。

 

あと、自分で案件を選べる必要があるので、基本的にフリーランスにしかできないハックですが。