SIerが必要としているのは業務知識だという都市伝説

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


金融(ディラーが使うようなポジション計算をするフロントシステム、リスク計算をするようなミドルオフィス、勘定系のバックオフィス)、流通、輸出入、製薬など、いろんな業務をやってきたおいらが通りますよ。


確かに金融は業務知識がないと歯が立たない。でも、自分の経験した限りでは、それ以外の業務は、案件が始まってから勉強しても十分間に合います。
一週間以内の勉強で、お客様のところにいってシステムの仕様を話し合うことはできるようになります。もちろん、この道何年って人にはかないませんよ。でも、仕様を決める分には困らない。


ある業界用のシステムを何年もやっているとするじゃないですか。その業務知識は、すごく役に立つとみんな思っているかもしれません。しかし、同じ業界でも、お客様が違うと業務知識が結構異なることも実は多いんです。だから、業務知識が豊富でも、それが全部有効になるとは限らないのです。
特に日本は、パッケージに合わせるのを嫌うから、会社ごとに自前の業務になっていることが多いんじゃないかなぁ。


豊富な業務知識を事前に持っていないとSIができないというのは、金融以外では都市伝説だと思います。


にもかかわらず、SIerにいくと技術的なスキルより業務知識のほうが重要だと思っている人が圧倒的に多いのは事実です。どうしてかというと、そのように教え込まれたからです。刷り込みですね。
汎用機の世界では、技術的な部分で差がつくことはほとんどなかった。だから、差別化のために業務知識が重要視されたのです。
なぜ、プログラミングが軽視されたかについてはSI業界の老害が若手と下請けを蝕む理由を参照してください。


このようなプログラミングを軽視し業務知識を重要視する考えが、SIerでは、先輩から後輩へ脈々と受け継がれています。今では、プログラミングは発達し、人によって大きく生産性は違ってくるのに、その事実を知る機会がないのです。
しょうがないよね。新人のころから、「プログラミングは付加価値の低いものだ。付加価値をつけるためには業務知識を身につけなければならない。」そう教え込まれたら、誰でもそうなるでしょう。


でも、現実はそうではない。(私の知ってる限りは)金融以外の業務知識は、プロジェクトが始まってから勉強しても十分間に合います。工数の見積もりをする人が、業務知識をあらかじめ持っていればそれで十分なのです。

それよりは、技術的なスキルを身につけ、ユーザの要件をいかにシステムに落としこめるかを知っていることが重要です。要件を技術に落とし込むスキルは、勉強しても身につかない。経験をつむしかありません。でも、技術的なスキルは、勉強して身につけることができます。SIerに入る前に身につけた技術的なスキルが、無駄になることはないのです。


技術的なスキルのある学生は悲観的に思う必要はありません。そのスキルは、SIerに入っても役に立ちます。でも、ちゃんとしたSIerかどうかは、きちんと見分けなければいけません。技術が付加価値の低いことだと思っているSIerはさけ、「技術と業務知識は重要、そして何よりも重要なのは、要件を技術に落とし込む能力」そう考えているSIerを選びましょう。


ブクマのコメントにあるように、ユーザ企業に昔から入り込んでいるベテランSEが、ユーザ企業から重宝されるのは事実です。システム部が要件を決められないから。でも、そのせいで、ベンダーロックインが起こり、高いコストを払わされているはず。
システム部が弱い企業は、高コスト体質になりやすいので、いずれは、淘汰される可能性が高いと思います。システム部ごとアウトソースする場合もあるけど、その場合もベンダーロックインが起きます。
ITを生かした企業にするには、しっかりしたシステム部が必要だと思います。

私の書き方が不十分だったので、続きとして深い業務知識が必要なのは案件の提案者と要件定義者のエントリを書きました。