ソフトを他人に作らせる日本、自分で作る米国という記事を読ませていただきました。

日本はユーザ企業、ベンダー企業という形でシステムの発注元がベンダーに対してシステムを作ってもらい、保守メンテナンスまでしてもらうという形が一般的になっています。その携帯の問題の一つが、「ベンダーロックイン」。ユーザ企業からすれば、一度採用したシステムは他社に移管するのが難しくなってしまい、最初は安く請け負ってくれたベンダー企業ですが、年数が経つにつれ、保守費が上がっていく。というような形態を指します。

当然、ベンダー側も儲けなければいけませんから、他社に移管されては困ってしまいますので、わざとわかりにくく作ったり、仕様書も曖昧な部分を残したりなど、ノウハウをベンダー企業側に溜め込んで、ユーザ企業側にフィードバックせず、一度作成したシステムにずーっと儲けさせてもらうといったところでしょう。

これに対し、米国企業はユーザ企業側に開発部門を持っており、内部で全て完結するという構造になっているそうです。そうすることにより、まず、開発のスピードが上がります。ユーザ企業の本当のユーザと開発者の間に変な人間が入らずにスピーディに開発できます。まさに、DevOptsが地でやっていけるわけです。そもそもシステム開発は関わる人が多くなればなるほど、いわゆるオーバーヘッドの人員も比例して増えていくので、会議のための会議や、誰も読み返さない無駄な資料などが指数関数的に増えていきます。

これほどアホみたいなことはありません。先述の記事でも書かれていますが、結局はシステム=ソフトウエア。ということでソフトウエアを実際に開発する人と実際に使う人が近くないといけません。そうしないと時間ばかりかかって全く違うものができる可能性もあります。

ただ、日本と米国の違いにも触れていて、基本的に日本では人材の流動性が悪いということ、また、スペシャリストではなくゼネラリストを育てる傾向にあるという部分ではないでしょうか?会社内で出世するためにはいろいろな部署を経験して会社の内容を全て理解していく必要があるという形が日本の企業であり、経営者も下から上がってきた人がなることがほとんどだと思います。米国なんかだとプロの経営者、要は経営のスペシャリストが経営を担うため、会社の部門ごとのしきたりとかそういうのは一切関係なく、経営のみに注力しますので、いわゆる日本的なゼネラリストではなくスペシャリストが経営しているのでしょう。

そう考えると、日本はゼネラリストを優遇し、米国ではスペシャリストが優遇されるということなのかもしれません。