深い業務知識が必要なのは案件の提案者と要件定義者

SIerが必要としているのは業務知識だという都市伝説のエントリで、誤解されたのは、「SIerは深い業務知識が不要だ」というふうに私が主張していると思われたことですね。
誤解されるのは、もちろん、私の書き方が悪かったせいなので、続きを書きます。


SIerで深い業務知識が必要とされる人がいます。案件の提案者と要件定義者です。営業がお客様のところから案件を持ってくると、その案件に関する深い業務知識を持っている人がアサインされ、提案書と見積りを作ります。この役割の人は、深い業務知識が必要です。
無事に案件が獲得できたとしましょう。お客様のところにいって要件をつめるのですが、このときのメンバも深い業務知識が必要です。しかし、全員が深い業務知識を持っていなくても大丈夫。全体の半分弱くらいのメンバが深い業務知識を持っていれば大丈夫だと思います。案件の難易度にもよりますが、一人が業務を深く理解していれば大丈夫な場合もあります。
最初は深く業務を知らなかった残りのメンバも要件定義を通じて、少なくてもそのお客様に関しては、深く業務を理解できるようになります。


要件定義が終わると次は、外部設計をおこないます。外部設計の呼び方は、各社によって違うと思いますが、要件定義を顧客が理解できるレベルで具体化することです。この外部設計のメンバは、深い業務知識を持っていなくても大丈夫だと思います。基礎的なことをおさえておけば、後は、要件定義をしたメンバからレクチャーを受けながら設計を進めていくことができます。


つまり、深い業務知識が必要なのは、案件の提案者と要件定義者だけで、残りのメンバは、後から勉強して基礎を身に着ければ間に合うのです。
業務知識が不要だとはいってませんよ。外部設計を行なうには、業務知識が必要です。ただし、その業務知識は後から勉強しても間に合うということです。
また、外部設計を行なうには、業務知識と同様に、この要件をどうやって実装に落とし込むかというスキルが必要です。どうやって実装するかのイメージなしに設計したものは、そのままではまともに実装できないからです。


技術力だけがあればいいなんていってませんよ。外部設計を行なうには、業務知識が必要です。しかし、それと同時に、「要件をどうやって実装に落とし込むかというスキル」も必要なのです。
でも、今の多くのSIerは、業務知識を重要視するあまり、「要件をどうやって実装に落とし込むかというスキル」をあまりに軽視しすぎているので、それはおかしいといっているのです。


深い業務知識というのは、私の経験上、要件定義をやらないと身につきません。外部設計をしてもシステムの一部しか担当しないので、知識が深くならないのです。
要件定義をやれるメンバというのはごく少数です。しかも、もともと深く業務を知っているメンバが数人はいるので、要件定義をやったことのない人が参加できるというのはものすごく「稀」な機会ということになります。深く業務を理解している人の数を増やすのは難しいのです。


じゃ、要件定義にかかわれない人は、スキルアップできないかというとそんなことはありません。「要件をどうやって実装に落とし込むかというスキル」も非常に重要です。このスキルは、技術力のある人が、外部設計を何度もやってみないと身につきません。


この「要件をどうやって実装に落とし込むかというスキル」を今のSIerは、あまりに軽視しすぎていませんかというのが私の言いたいことです。
深い業務知識を持った人ももちろん重要ですが、そういう人は、大量生産できません。にもかかわらず、プログラミング力を軽視して、業務知識を重要視しすぎているから、こんなことが起こるのです。

どうも会社では、僕に上流工程を任せようとしているようです。しかしながら僕は、上流工程にはまったく興味がありません。上流工程のほうが付加価値が高いし儲かるということは一応知っているつもりですが、設計をしたり人の調整をしたり、なんていうことは好きでもないし、得意でもないのです。まだ入社して2年目にもなっていないわけですし、もっと実際のコードに触れていたいと強く思うのです。

それにしても、上司は根本的な勘違いをしているような気がしてなりません。上流工程が儲かるのは、それだけ付加価値が高いからです。付加価値が高いということは、それだけ難しい仕事だということです。僕にそんな仕事ができるだなんて、何を間違ったらそんなことを思えるのでしょう。僕は何一つ実績など挙げていないのに、です。

「要件をどうやって実装に落とし込むかというスキル」なしで、外部設計をするから、実装できない設計になってしまうのです。


深く業務を知っている人が、高く売れるのは、大量生産できないからです。にもかかわらず、何の策もなく業務重視のやり方をとるから、一握りのSuper業務SEと数多くの中途半端に業務を知っていてgdgdな設計書を書く人を生み出してしまうのです。
この中途半端な人は、自分の仕事結果が中途半端なことを知っているので、仕事に満足感をもてません。さらに困るのは、gdgdな設計書を実際に実装させられる人たちです。実装できない設計書を実装しろといわれるのだから。


日本のSIの生産性が低いといわれるのは、このようなSIerの思考パターンがもたらしているんじゃないかと思います。


SIerには、「要件をどうやって実装に落とし込むかというスキル」をもったSEを育てつつ、その中の何人かがSuper業務SEになっていくというキャリアパスを提案したい。そうするとこで、SI全体の生産性をあげつつ、みんなのスキルも向上します。