電脳土方を峻別すべき時代の到来

今更ではあるが、そもそもこのブログにおける技術ネタの一つの軸の話でもあるのでやっぱり言及してみようと思う。

IT業界、特にSIにおける技術者の根本的な問題

多分みんな同じ悩みを抱えていると思うので繰り返し繰り返し書いてきているけれども、僕が社会人になった2000年においてすら、ITの仕事は「是非ITをやりたいから」ではない人材が山程生まれていたし、それから15年経ってIT業界における「Java要員」は単に「StrutsのActionクラスに業務ロジック書けます」でしかなく、HTMLはテンプレートがなければ理解もできず、そもそもWebのステータスコードも知らない。
だからと言って、ベテランコボラーがIT屋としてのベテランであるということもめったにない。今の大半の(いわゆる業務プログラマーとしての)Java要員というのは手厚いフレームワークのもとで業務ロジックを事務的に実装していくだけの、まさにかつてそのように仕事をしていたCOBOLプロジェクトの世界を目指しているだけだ。
今やシステムと言ったら大半はWebだみたいな風潮は業務システム屋において特に顕著であるし、それでいてWebシステムとはなんぞやということを知っている技術者がプロジェクトに何割いるのかという世界であり、答えを言うと平均5%くらいじゃないかという肌感覚があるような問題。

SIっていうのはそういう意味では今も昔も変わらずただ事務的にコードを書く人を量産しているだけだし、ノンプログラミングが推進されるってのも本質的には効率の良さとかには関係なく、コード記述という事務作業を定義書記述に変えただけであり、大抵の場合、製造工程における大半の工数はプログラムではなくテストに費やされている業界においてツールによるブラックボックス化はベンダーロックインと同義であると思うので時代に対して後退であるとすら感じる。

そういう中で、技術者としてどうあるべきか、ということを考えていない人を少しでも考えている人が食わせているという状況であるにもかかわらず、1つの会社の中では製造業におけるヒエラルキーほど格差が出ない構造になっている。それは下請けだとか派遣だとかそういったところにシフトしているのでそれ自体は本質的には健全(役割も責任も違うわけで)なんだけど、実際のところ1階層下の会社というのが単なる人売りの会社でなく、自身がSIerあらんとしているところがこの問題を複雑にしている。ネタとしては単純だけど。

すっごく単純化して言うと、つまりIT業界(SI業界)というのはきちんとした分業ができておらず、会社階層ごとのヒエラルキーがはっきりしない状態のまま、契約としてのヒエラルキーががっつりと多段で存在するというのが大きな問題である。

と言ってもここには一つ大きな問題があって、実際に重機などを扱えなくても建築家として成立しうることとは異なり、システムを作るためのベースの知識・経験というのは最下層の知識も含めた広大な世界のどこをどれだけ把握しているのかに尽きるというところだろう。これは階層が固定できない話でもある。下克上。

ITエンジニアの雇用のあるべき姿とは

というところで本題。このエントリは下記のエントリに対するアンサーとして書いている。
日本のソフトウエア技術者の雇用条件の問題点 | F's Garage

自分は製造業出身なので、大卒、院卒と大卒以外の人たちの新卒事情に、ヒエラルキー的な差があるのは事実として意識しています。
つまり製造業の場合は、設計や開発を行う技術者、と、主にラインでものつくりを行う製造の立場というのがあると思います。大卒は原則、設計、開発や生産管理で、高卒とかだとブルーカラーという立ち位置で給与水準などが違うという現実があるかと思います。
最近まで意識してなかったんですが、それをソフトウエア産業にそのまま適用すると、いわゆるSE職が大卒、生産部隊としてのプログラマ職が大卒以外ということになるみたいですね。

ここで一つポイントなのは設計や「開発」という部分。開発っていうのは製造と等しいのか違うのか。本質的には違うと思う。でも開発ってポジションの定義は少し難しいな。コーダーというのはライン工よりは作業が定型的ではないし、だからコーダーが開発というポジションにオーバーラップすることもよくある。

この事実から読み取れることは、プログラマは時間給によるブルーカラーとして扱われ、職種としては創造的な役割を期待されていないということになります。

完全に分業されていればそのとおりだし、そうあるべきだとも思う。

これはネットベンチャーで働いているとめっちゃ違和感があります。
ネットベンチャーは、指示出ししかできないSEだと持て余します。人の言われたことしかやれないプログラマもそのままでは成長できません。
つまり世の中の採用、育成の方向性が、ネット系の求める人材像にあっていない。

なので、そもそもこの話はちょっと違っていて、「指示出ししかできないSE」という存在自体がIT業界の癌であり悪であるということだし、採用、育成の方向性がそうであるわけでもない。そうじゃなくて、そういう風にしか育たない人間が「SE階層にある会社」にたくさんいるってだけ。と言いたいところだけどやっぱりそれは育成の問題ではあって、なにぶんSE階層にある会社は実際に手を動かしてものを作る機会というのを中途半端に成立しているSIの階層化によって奪われている。どんなに優秀でも現場の経験をきちんと積めない。
というのも実は嘘だ。この業界、少なくともITの仕事を志向していて、ものを作るのが好きな優秀な人材というのはどんな環境においてだって一端の技術者にはなれるはずだ。問題は階層化そのものではない。技術者の成長を拒んているのは本人の志向であったり、現場の無理解であったりというところではある。実際、ここ最近階層が上も下もシステム屋として成立しうる思考・志向を持った若い人材をさっぱり見ない。50人に1人といったところか。

この話のポイントはとりあえず大卒の工学部系出身は、製造業以外だと、なんだかんだ言ってSI系に行く人が多いと思います。それが今の日本のエスタブリッシュだからです。この人達がSEとして、かつプログラマとして、広い世界を作る立場であれば、彼らがネットビジネスをやりたくなった時に、スタートアップやベンチャーは即戦力を得られるので、みんなハッピーです。
ところが、社会に対して真面目であればあるほど、高学歴であったはずのSEがプログラムができないように育てられ、せっかくプログラムを作れるプログラマは主体性に行動しないことを労働契約としてロックインしてしまうのでは、日本のお先は真っ暗です。(さらにこの二者は会社も違うという…人月云々、多重請負云々の本質は、この身分制度ではないのかと…)

というわけで、この話は高学歴でSIベンダーにいった奴らの技術者としての志向の問題で、プログラムができないように育てられているわけではなくて、ただし現場でプログラムをやる環境がイマイチないよっていうことでしかない。それで技術者として体制できないことを教育だけに原因を求めてはいけない。
管理しかできないSEなんてプログラマ以下でしょ。

結局のところ、この問題は一度ヒエラルキー=どの会社に入るかが決定してしまったらその階層から落ちることがないことが問題なんだと思う。

というわけで、タイトルの話なんだけど、どんな階層の会社であっても「ITエンジニア」としてコミットできていない(事務屋で良しとしてしまう)人材はたくさんいるし、そういう人たちを「プロパー」として養っていかなければならないところにこの業界の凋落が感じられるわけだ。出来る仕事の内容が限られているのに上のヒエラルキーの会社で活動しなければならない人材や、SEとしての視野を持って活動しているのに下のヒエラルキーにいるがゆえにSEとしての活動ができない技術者。このヒエラルキー固定の問題は解決されるべき。だから、労働契約云々という話は間違ってないけれども、人材は流動的だけど会社の立場は固定なんてソリューションは難しい。

僕のイメージ上の絵空事で言うと、上位ヒエラルキーの会社はクズSEをリストラすべきだし、いわゆるPMはどんなにマネジメントスキルがあっても技術がなければ評価すべきではないし、コーダー志向(事務員志向)しかない人材は子会社にでも叩きこむべきだと思う。そこでしっかり席を開けたうえで、下位ヒエラルキーの会社の人が転職できる体制になっているべき。
そうすると、上位ヒエラルキーにいながら個人の志向によりSEとして大成する人間と、叩き上げ技術者がいる会社とコーダーからエンジニアになる修行中の要員と事務レベルのコードしか書けないブルーカラー的技術者が混在する会社に分かれる。結果として人材が育てばふさわしい階層の会社に所属できるように自然とレールが引かれている、というような世の中にでもならないかぎりはこの状況が改善するとは思えない。

もっとも、ここ最近ずっと主張している通り、この巨大SI案件祭りが終わった時に何が起こるかというと、ここでの絵空事に多少近い感じの整理大会が起きるんじゃないかと思う。