2008-06-15 スーパークリエイターがSI業界で即戦力になれない理由 
少し前に若いエンジニア達と話す機会があった。この春SI企業に入社してプログラミングの研修を受けているという。みんなそれぞれ能力が高い上に、学習の高速道路を爆走中といった感じでネット上で話題になっているような技術情報には十分詳しい。SICPを全部解いたとも言っていたし本当はプログラミングの研修なんか必要ないのだろう。未踏に応募したり勉強会を開催したりするのはこういったタイプなんだろうかとか、いまどきのSI企業の人材獲得能力はすごいなとか思いつつ、でも彼らはこの業界に何を求めてどうなろうとしているのか少し気になったりもした。
これほど優秀で勉強もしてきた人達でも、SIerとしては即戦力にはならない。社会人マナーとか仕事の進め方の話ではなくて、単純に知識不足という意味で。そのため一緒に入社したプログラミング能力の低い社員と同じように扱われる可能性が高い。これはすごく不幸な状態だと思う。SI業界が求める人材と学生のスキルアンマッチがあるのは間違いない。
ちょっと前の記事で、企業が重視するスキルと学校が重要視して教育しているスキルのギャップについての話があった。
「IT技術者はやりがいがある仕事か」---学生とIT産業のトップが公開対談
この記事の企業側の発言で「コンピュータ・サイエンスの学科を増やさないと問題は解決しない」というのがあったが、これは嘘だ。SI業界に限っていうと、仕事で必要になるコンピュータ・サイエンスの知識量は大したものではない。本当に必要なのはいわゆる「業務知識」と、それを通常どのようにコンピュータで実現するかという知識だ。
プログラミングの他に専門は何?
そもそもプログラミングとは目的ではなく手段だ。だから何かシステムを開発する場合、手段(プログラミング)だけでなく、目的にも詳しくなくてはならない。SI業界だと分かりにくいのであれば、たとえばCG作成ツールの開発会社に、グラフィックやモデリング、ベクトル計算にはまったく知識のない天才プログラマーが入ったとしたらどうか? あるいは今まで一回もゲームをやったことがないスーパークリエイターがゲームソフト開発会社に入ったとしたら? 彼らは手段であるプログラミングには詳しいが、目的であるグラフィックやゲームには素人なのだ。優秀なので飲み込みも早いだろうが、それでも長期間それらについて学ばなければならないだろう。
SI業界が開発するシステムの目的は何か? それがつまり「業務知識」というやつで、金融や保険だったり、証券取引、財務会計、生産管理、物流・在庫管理、販売管理だったりするのだ。それぞれ必要とされる知識は非常に多い。普通の新入社員がOJTで身につけようと思ったら数年かかってもおかしくないだろう。
ベテランエンジニアの中には高待遇で現場を渡り歩くプロもいるが、そういう人は間違いなく「プログラミングと金融」とか「プログラミングと在庫、販売、データマイニング」というようにプログラミング以外に専門分野を持っているのだ。
業務システムは独自の文化圏
業務系システムは、他では目にしないようなフレームワークや言語が多く使われる。COBOLやRPGで書かれたシステムは減ってはきたもののいまだに現役だし、新規システムでもSAPのABAP言語なんかは需要が高い。メジャーなアプリケーションはWebSphereとかPeopleSoftだったりするし、ジョブの実行はcronではなくて、JP1、千手、A-AUTOのような運用管理ソフトを使う。XMLの非同期通信を憶えるくらいなら全銀手順やHULFTを知っておいた方が役に立つ、というような世界だ。困ったことに、仕事で利用している技術者の数に比較してこれらの情報はネット上に驚くほど少ない。
業界全体の説明不足
SIerが扱う業務システムとはこういった世界だ。僕の知る範囲なので偏っていることを差し引いたとしても、Webで目にするコンピュータ技術とはちょっと毛色が異なる印象を受けないだろうか。つまりSI業界での即戦力とは「金融工学と財務会計に詳しくてCOBOLとABAPが読めてWebSphere上のJavaが書けます」といったような人なのだが、新卒ではとても実在する気がしない。
コンピュータが好きで勉強してきた学生でもこういった世界が肌に合わない人は当然多いと思う。逆に僕のようにこれはこれで面白くて好きだという人もいるはずだ。どこかの大学で試しにエンタープライズ・コンピューティング学科みたいなのを作って教えてくれるといいのだけれど。それが無理でも学生が進路を決めるずっと前に、SIerの仕事について必要以上に持ち上げたり貶めたりせず事実を正しく説明し、事実を認識した上で希望する学生を集めればスキルアンマッチで不幸になることは少ないはずだと思う。
とはいえ自分も、冒頭の新卒エンジニア達を前にこういった話をするのを微妙に避ける気持ちがあったりして、何かモヤモヤ感が今も残っている。
追記:
ブクマの指摘により誤字(HALFT→HULFT)修正。ありがとうございます。
blogは別にいいけど、今まで書いてきた仕様書が全部間違ってたらどうしよう。
- 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/11
- メディア: 単行本
- この商品を含むブログを見る
- T/O - SI業界の抽象文化圏
- 天音茶屋日記 - [メモ]
- The Other Road Ahead - たしかに
- The Dry Days - SEにコミュニケーション能力が必要な理由
- 北島/あかみのメモ帳 - 今日のはてブ
- novtan別館 - SI業界の即戦力とは
- src’s note - 気になる技術メモ
- もちは餅屋システムはSI屋SEXはソープランド屋 (旧ぃぬxに喰ら...
- オレドコBlog - Re:)スーパークリエイターがSI業界で即戦力になれな...
- __int128 Geek Not Found - プログラミングを単純労働と捉える3つの...
- ここは酷い電力自由化ですね
- そういうことだったのか
- 日暮らしSEの日々考慮 〜名古屋でオフショア そしてセレブへ?〜 -...
- 「業務知識」は目的じゃない
- (そーしゃる+こんぴゅーた)さいえんす→勉強中 - プログラミング...
- ある二宮ひかるファンの日記 - つぶやきその7
- お仕事のお話し
- [思ったこと]気づいた
- ひがやすを blog - SIerが必要としているのは業務知識だという都市...
- aikeの日記 - エンジニアがSI業界でいきいきと仕事をするために
- strange - SIerと業務知識
- 文字の洪水に溺れながら - プログラミングは目的でなくて手段である...
- 雑想日記 - 優秀な技術者≠技術力
- SIerに向いている学科は経営工学と思う
- スーパークリエイターがSI業界で即戦力になれない理由
- 自堕落な投資ずきSEの日記 - SIの開発効率を上げるために必要なこと...
- [雑記]ひとりごと
- sd note - コードを書く力をどれだけ維持し続けるか



これは確かにそうかもしれません。
ただその一方で、先日のBTMUのDay2プロジェクトで起こったセブン銀行のトラブルでは、文字コードに関する初歩的(と言われる)ミスが起きました。
この辺の理由って何故なんでしょう?上で書かれているSIでの即戦力の用件に入ってない、情報工学の初歩的な話だと思うんですが。
#単に頭数だけで熟練者が居なかっただけかもしれませんが
試験をやりたくてもできなかったのではと想像します。
特に実業務で使用中の機能だと「何月何日何時頃に何という名義で
取引しますがそれはテストデータなのでよろしく」みたいな感じで
連絡取りながらになり効率がすごく悪いです。
他社と通信できるテストサーバなんて普通持ってないし。
それでまあ、インタフェース試験の項目が足りていないのはみんな
分かった上で、最もクリティカルな機能以外は、試験の網羅性を
求めるよりも、何かあったときのコンティンジェンシープランを
しっかり立てるという方針で進めたのかなと。
2.業務知識の問題は、プログラマまたはSE個々人にあるのではなく、各企業が自社の業務プロセスに拘りすぎていて統一した業務プロセスを構築できていないからではないかと思います。もし仮に、例えば財務会計のジャンルで統一した標準業務手順などが確立できておれば、その標準との差異だけが新人(熟練SE含めて)の習熟すべきポイントとなるはずです。とはいえ、財務会計の分野に関しては、グローバル化の波に押されてASBJが進めてるため改善が見られるでしょうが。
某メガバンクのシステム統合の問題が出ているようですのでそれにも触れておきますと、たとえ他(社)システムとの連携とはいえ、そこにはシゴトを進める上で不可欠なはずの「ホウ・レン・ソウ」、つまりビジネス・コミュニケーションの欠如を見て取ります。こうした要件の習得が、残念なことに OJT でしかできないというのが企業の現場の現実なのではないでしょうか。
専門分野をもつっていうのは大事ですね。
金融やら保険やらに飛ばされまくっていたのでそういう知識はみんな持っている然なのかと思ってました。
絵が描けて、立体が構築できても、ユーザーの気持ちのわからない人。
結局大学の四年間って技術を身につけるので精一杯でしょう。
そこで自分が出した答えとしては、専門性をもったSIerにおいて業務知識を習得しながら仕事を行うということでした。
で、現在、仕事をしながら思うのは、プログラミングの言語仕様も
結構いろいろ覚えないといけないけども、業務(金融の場合)という仕様はもっと覚えるのが大変です。で、両者に共通するところが
よりよいアルゴリズムを組み立てるってことなのかなと思います。
だれか業務用アルゴリズムに対するデザインパターンを出版しないですかねぇ期待したいです。
スーパークリエータがSIerになるの?普通に考えたら、ならないだろ。語弊があるかもしれないが、SIとかSEとかは文系でもなれるし。
スーパークリエータはプログラミング以外にも専門や興味分野があるから人に認められるプログラムを作れるんじゃない。
その興味の範疇がSIの分野ですって人はスーパークリエータになれないでしょ。
実際はSIの作業とプログラミングは別次元なんだから。
IT業界って枠組みが大きすぎて、SIもプログラマーも同じ傘の下で働いているように思えるのかもしれないけど。