Hatena::ブログ(Diary)

aikeの日記 RSSフィード

2008-06-15 スーパークリエイターがSI業界で即戦力になれない理由

少し前に若いエンジニア達と話す機会があった。この春SI企業に入社してプログラミングの研修を受けているという。みんなそれぞれ能力が高い上に、学習の高速道路を爆走中といった感じでネット上で話題になっているような技術情報には十分詳しい。SICPを全部解いたとも言っていたし本当はプログラミングの研修なんか必要ないのだろう。未踏に応募したり勉強会を開催したりするのはこういったタイプなんだろうかとか、いまどきのSI企業の人材獲得能力はすごいなとか思いつつ、でも彼らはこの業界に何を求めてどうなろうとしているのか少し気になったりもした。


これほど優秀で勉強もしてきた人達でも、SIerとしては即戦力にはならない。社会人マナーとか仕事の進め方の話ではなくて、単純に知識不足という意味で。そのため一緒に入社したプログラミング能力の低い社員と同じように扱われる可能性が高い。これはすごく不幸な状態だと思う。SI業界が求める人材と学生のスキルアンマッチがあるのは間違いない。


ちょっと前の記事で、企業が重視するスキルと学校が重要視して教育しているスキルのギャップについての話があった。

「IT技術者はやりがいがある仕事か」---学生とIT産業のトップが公開対談

この記事の企業側の発言で「コンピュータサイエンスの学科を増やさないと問題は解決しない」というのがあったが、これは嘘だ。SI業界に限っていうと、仕事で必要になるコンピュータサイエンスの知識量は大したものではない。本当に必要なのはいわゆる「業務知識」と、それを通常どのようにコンピュータで実現するかという知識だ。


プログラミングの他に専門は何?

そもそもプログラミングとは目的ではなく手段だ。だから何かシステムを開発する場合、手段(プログラミング)だけでなく、目的にも詳しくなくてはならない。SI業界だと分かりにくいのであれば、たとえばCG作成ツールの開発会社に、グラフィックやモデリングベクトル計算にはまったく知識のない天才プログラマーが入ったとしたらどうか? あるいは今まで一回もゲームをやったことがないスーパークリエイターゲームソフト開発会社に入ったとしたら? 彼らは手段であるプログラミングには詳しいが、目的であるグラフィックやゲームには素人なのだ。優秀なので飲み込みも早いだろうが、それでも長期間それらについて学ばなければならないだろう。


SI業界が開発するシステムの目的は何か? それがつまり「業務知識」というやつで、金融や保険だったり、証券取引、財務会計、生産管理、物流・在庫管理、販売管理だったりするのだ。それぞれ必要とされる知識は非常に多い。普通の新入社員OJTで身につけようと思ったら数年かかってもおかしくないだろう。

ベテランエンジニアの中には高待遇で現場を渡り歩くプロもいるが、そういう人は間違いなく「プログラミング金融」とか「プログラミングと在庫、販売、データマイニング」というようにプログラミング以外に専門分野を持っているのだ。


業務システムは独自の文化圏

業務系システムは、他では目にしないようなフレームワークや言語が多く使われる。COBOLRPGで書かれたシステムは減ってはきたもののいまだに現役だし、新規システムでもSAPABAP言語なんかは需要が高い。メジャーなアプリケーションWebSphereとかPeopleSoftだったりするし、ジョブの実行はcronではなくて、JP1、千手、A-AUTOのような運用管理ソフトを使う。XMLの非同期通信を憶えるくらいなら全銀手順やHULFTを知っておいた方が役に立つ、というような世界だ。困ったことに、仕事で利用している技術者の数に比較してこれらの情報はネット上に驚くほど少ない。


業界全体の説明不足

SIerが扱う業務システムとはこういった世界だ。僕の知る範囲なので偏っていることを差し引いたとしても、Webで目にするコンピュータ技術とはちょっと毛色が異なる印象を受けないだろうか。つまりSI業界での即戦力とは「金融工学と財務会計に詳しくてCOBOLABAPが読めてWebSphere上のJavaが書けます」といったような人なのだが、新卒ではとても実在する気がしない。


コンピュータが好きで勉強してきた学生でもこういった世界が肌に合わない人は当然多いと思う。逆に僕のようにこれはこれで面白くて好きだという人もいるはずだ。どこかの大学で試しにエンタープライズ・コンピューティング学科みたいなのを作って教えてくれるといいのだけれど。それが無理でも学生が進路を決めるずっと前に、SIerの仕事について必要以上に持ち上げたり貶めたりせず事実を正しく説明し、事実を認識した上で希望する学生を集めればスキルアンマッチで不幸になることは少ないはずだと思う。

とはいえ自分も、冒頭の新卒エンジニア達を前にこういった話をするのを微妙に避ける気持ちがあったりして、何かモヤモヤ感が今も残っている。


追記:

ブクマの指摘により誤字(HALFT→HULFT)修正。ありがとうございます。

blogは別にいいけど、今まで書いてきた仕様書が全部間違ってたらどうしよう。

 

showyoushowyou 2008/06/17 22:16 >「金融工学と財務会計に詳しくてCOBOLとABAPが読めてWebSphere上のJavaが書けます」
これは確かにそうかもしれません。
ただその一方で、先日のBTMUのDay2プロジェクトで起こったセブン銀行のトラブルでは、文字コードに関する初歩的(と言われる)ミスが起きました。
この辺の理由って何故なんでしょう?上で書かれているSIでの即戦力の用件に入ってない、情報工学の初歩的な話だと思うんですが。
#単に頭数だけで熟練者が居なかっただけかもしれませんが

aikeaike 2008/06/18 03:10 他社間インタフェースって一番試験しにくい所なので、本来必要な
試験をやりたくてもできなかったのではと想像します。
特に実業務で使用中の機能だと「何月何日何時頃に何という名義で
取引しますがそれはテストデータなのでよろしく」みたいな感じで
連絡取りながらになり効率がすごく悪いです。
他社と通信できるテストサーバなんて普通持ってないし。
それでまあ、インタフェース試験の項目が足りていないのはみんな
分かった上で、最もクリティカルな機能以外は、試験の網羅性を
求めるよりも、何かあったときのコンティンジェンシープランを
しっかり立てるという方針で進めたのかなと。

元SIer元SIer 2008/06/18 10:12 1.件のトラブルでテスト不足が指摘されているのですが、そもそも他システム連携において文字コードというのはプロトコルの根本部分だと思います。そこの事前連携・確認が行えていないというのは、検証段階ではなく設計段階での問題ではないかと思います。
2.業務知識の問題は、プログラマまたはSE個々人にあるのではなく、各企業が自社の業務プロセスに拘りすぎていて統一した業務プロセスを構築できていないからではないかと思います。もし仮に、例えば財務会計のジャンルで統一した標準業務手順などが確立できておれば、その標準との差異だけが新人(熟練SE含めて)の習熟すべきポイントとなるはずです。とはいえ、財務会計の分野に関しては、グローバル化の波に押されてASBJが進めてるため改善が見られるでしょうが。

元はてなー元はてなー 2008/06/18 11:04 おっしゃるように、SIer における技術的知識や教養は、業務に対する補完的な役割こそあれ、それがビジネスの中心とは言えないと思います。
某メガバンクのシステム統合の問題が出ているようですのでそれにも触れておきますと、たとえ他(社)システムとの連携とはいえ、そこにはシゴトを進める上で不可欠なはずの「ホウ・レン・ソウ」、つまりビジネス・コミュニケーションの欠如を見て取ります。こうした要件の習得が、残念なことに OJT でしかできないというのが企業の現場の現実なのではないでしょうか。

trshugutrshugu 2008/06/18 14:01 これはいい真理!
専門分野をもつっていうのは大事ですね。
金融やら保険やらに飛ばされまくっていたのでそういう知識はみんな持っている然なのかと思ってました。

でざいなーでざいなー 2008/06/18 23:23 プロダクトデザイナーのなかにもそういう人がいます。
絵が描けて、立体が構築できても、ユーザーの気持ちのわからない人。
結局大学の四年間って技術を身につけるので精一杯でしょう。

kensir0ukensir0u 2008/06/19 22:53 自分も入社してからがむしゃらにプログラミングやIT知識を勉強、修得しようと努力してきて、あるときに、よいシステムを実現するには業務知識が必要不可欠だと思いました。しかし、業務知識はおっしゃるとおりにそんなに情報が公開されていません。
そこで自分が出した答えとしては、専門性をもったSIerにおいて業務知識を習得しながら仕事を行うということでした。
で、現在、仕事をしながら思うのは、プログラミングの言語仕様も
結構いろいろ覚えないといけないけども、業務(金融の場合)という仕様はもっと覚えるのが大変です。で、両者に共通するところが
よりよいアルゴリズムを組み立てるってことなのかなと思います。
だれか業務用アルゴリズムに対するデザインパターンを出版しないですかねぇ期待したいです。

通りすがり通りすがり 2009/05/03 13:04 タイトルから違和感がある。
スーパークリエータがSIerになるの?普通に考えたら、ならないだろ。語弊があるかもしれないが、SIとかSEとかは文系でもなれるし。

スーパークリエータはプログラミング以外にも専門や興味分野があるから人に認められるプログラムを作れるんじゃない。
その興味の範疇がSIの分野ですって人はスーパークリエータになれないでしょ。
実際はSIの作業とプログラミングは別次元なんだから。
IT業界って枠組みが大きすぎて、SIもプログラマーも同じ傘の下で働いているように思えるのかもしれないけど。

トラックバック - http://d.hatena.ne.jp/aike/20080615