レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

スーツとギークという区分けがなくなった時代の理由

id:gothedistanceのエントリで話題になってた1つのコメントが、まさに僕のブログに対してつけられたコメントでした。
http://d.hatena.ne.jp/iad_otomamay/20100216/1266333904#c1273690204

上記の「コメント主」に対して言いたいことはなにもないのですが、
id:gothedistanceの話題に少し触発されて、僕がリーマンショック以後の日本のSIerにいて感じることを述べます。


テーマは「スーツとギークという区分けがなくなった時代の理由」です。
(とりあえず、皆がスーツとかギークとかいう論争に飽きたことという理由は除いて語ります。)


もはや、今の時代のSI業界では「要件定義だけやるからあとヨロシク」と言って逃げられる人はいなくなりました。
理由のひとつは、簡単な話です。

理由 1. 不景気で逃げる先の仕事がなくなった

さらに今までのように工程ごとに役割分担をして情報伝達のコストをかけてられる余裕もなくなってきたのです。
それは巨大資本の大手SIerさんであってもです。
要件定義をしたメンバーが「あとヨロシク」とはなりません。だって他に案件なんて無いからです。


そして、もう一つの理由

理由 2. 大手SIerの内製化政策が効いてきた

要件定義をして「あとヨロシク」だったメンバーとは、発注側専門だった大手SIerのエリートエンジニア、またはITコンサル会社の人でした。
しかし、数年前からユーザ企業ですら内製回帰の流れになってきたことや、
上流・下流に分断することによる失敗の反省などから、大手SIerさんもコンサルさんも製造を外注に出さずに若手のプロパー社員にやらせるようになって行きました。


現在、その若手社員が5から8年目ぐらいのエンジニアとなり、
リーダや主任やマネージャーというポジションになってきて現場で主導権を握るようになってきています。


これらのエンジニアは手厚く実装技術の教育も受けている上に、そもそも基礎的な能力が高いのでどんどん吸収して伸びました。
僕の周りでも20代後半から30代の大手SIer・ITコンサル会社のプロパー社員は粒ぞろいです。


今までは、プログラムのことはわかりませんというマネージャーさんやリーダーさんばかりだったけれど
ここ数年は、すごくプログラム面の知識を持ったマネージャーさんやリーダーさんが多いです。
彼らは、要件定義の前段階の、プリセールスや事前検討というフェイズから関わり、プロジェクトの仕様マスタとしてプロジェクトに残り、プロジェクトマネジメントやアーキテクトや試験リーダーまでもをやります。


彼らの存在によって、要件定義から製造、試験までを責任を持ってやるエンジニアが評価されるという流れができています。


製造の注意点とか把握しながら要件や設計を決めると話に説得力が出るし、製造工程のリスクを回避した要件・設計ができるから全体の工数も抑えられます。


設計で適当にやってると後々苦労することが多いのは特にパフォーマンス面だけど、要件定義やら設計やらでパフォーマンスがそもそもあがらない部分なんかは逃げとくとか、実装の機微を知ってるとできます。


開発を全工程トータルで理解してるマネージャーさんやリーダーさんは、こういうメリットを身をもって知ってるから、メンバーに対する要求も自然と上流・下流を問わない姿勢になってきます。



事実、僕のところに舞い込んで来る案件情報で、ことごとく「要件定義から製造・試験・リリースまで面倒を見られる方」という条件がついているのです。
テンプレ化されてるぐらい上記の条件は必ずついてまわります。


こういったことから僕の実感では、上流でもちゃんとプログラミングや設計ができる人しか求められなくなってきました。
仕様書どおりにプログラミングだけをするという役割は、ほんとに外国人エンジニアに取って代わられたと感じます。
僕の参画しているプロジェクトも3分の1ぐらい中国エンジニアになってきたし、実際彼らはよくやってます。
製造だけとか、上流だけとか、そういう仕事が成り立たなくなってきたから、ギークもスーツもないとなったのではないでしょうか。


ところで「製造のプロ」は、しかしながらいまだに健在です。
DBやOS、言語、文字コード、パフォーマンスチューニング、ミドル製品、ハードウェアに対して
広く深い知識を持っていて、全体最適を考えられるプログラマー
システム全体の最も高度な部分を受け持っていて引っ張りだこです。

どれか1つのプロでは駄目で、最低でも3つぐらいの得意分野がある人でないと、この製造のプロは語れないと思います。



仕様書どおりSQLを書いて、ロジックを組んで、UTコードを書いて、というのを「プログラマのお仕事」と定義していた時代のほうが逆に異常だったのかもしれません。
要件定義・設計を担当していたプログラマが実装したほうが早い、
簡単なところやマンパワーが必要な試験などは大手SIerの新人さんや外国のエンジニアをサブプログラマにして手助けしてもらうだけ。
そういう感じになってきてます。


そんなことを書きながらも、
僕らのようなSESをビジネスモデルの1つに据えている中小のSI会社に望みが無いのかといえば、僕はそうとも思いません。

チームのマネジメントをしていると感じるのですが、
プロパー社員だけでチームをスケールすることには大きなリスクを感じます。
一気にたくさんの仕事が降ってきたときに支えきれなくなりますし、
プロパーをたくさん投入しすぎて、仕事が収束段階に入ったときには大慌てになってしまいます。


今は、ちゃんと実力をつけることが必要ですね。
ちゃんと下流から実力をつけたエンジニアだけが認められる時代になってきていると言えるからです。
いままでズルして中流ぐらいからはじめる流れは通用しなくなり、下流中流→上流、もしくは元発注側なら下流→最上流→中流みたいなパスしかなくなったように思います。
だから大手も中小もなく、エンジニアの個々の地道な努力の積み重ねによってエンジニアの価値が決まるようになったと思うのです。



追記
とはいえ、下流でもたもたしていると取り残されてしまうという厳しい時代であることも付け加えておきます。
下流から上流へあがる秘訣について、詳しくは別エントリで書きたいと思いますが、
ポイントを先にあげるとしたら、


「地味な努力で準備を惜しまず、チャンスにはしっかり応える」


ことかなと。