IT業界では「多重下請け構造+客先常駐」の組み合わせで、SI企業がSES企業から人をかき集めてきてシステム開発を行うというスタイルが今も一般的です。それが普通すぎて、私もこの業界に入った時にはこういうものだと思ってしまっていました。
しかしこの「多重下請け構造+客先常駐」のスタイル。これには問題がたくさんあります。
はっきり言って顧客にも良くないし、そこで働くエンジニアにとっても良くない。SNS上ではSESで働くエンジニアからの不満が後を絶ちません。
大手SI企業が中心になって展開しているこの「多重下請け構造+客先常駐」のスタイルはあまりにも非効率なので、そろそろシステム開発の在り方をアップデートしなければなりません。
私の考えは、一般企業も可能であればエンジニアを自社雇用してシステムを内製すべきだと思います。そういう意味でSIerの役割は終わったと考えます。
システム開発は内製が一番効率が良い
システム開発は、外注に出すよりも自社でエンジニアを雇用して内製した方が効率的に開発を進められます。
外注に出した場合には、エンジニアを雇用するリスクも含めて外部に委託するわけですから、当然ですがその分のコストも上乗せされます。しかしコスト面の問題は実はそれほど大きな問題ではありません。
開発の仕事を外部に委託する場合の一番のネックは、コミュニケーションです。これについてはどんなに密に連絡を取ってくれる外注先であっても、内製する場合と比べるとコミュニケーションがとりにくくなることは避けられません。
自社サービスを運営する企業だと、対応のスピードが重要となる場面も多々あります。この時にコミュニケーションの質が悪いと、それは対応スピードの低下にもつながってしまいます。
なぜシステム開発を外注する必要があるのか
システム開発は内製するのが一番効率の良いやり方です。ではなぜわざわざ効率を落としてまで外注する必要があるのかと言うと、内製するためには雇用のリスクが伴うからです。
システムを内製するためにエンジニアを雇用するということは、雇用したエンジニアに継続して仕事が発生することが前提です。開発が済んだから用済みになってクビだと問題なので、継続して仕事が提供できない場合は、外注して雇用のリスクを回避することになります。
またこれはシステム開発に限った話ではありませんが、内製するのであれば原則として複数人での体制とすべきです。
業務の根幹を担うようなシステムを担える人間を1人にすべきではありません。そんなことをすれば、そのエンジニアが辞めたり病気になったりした時に下手したら業務が完全にストップすることにもなりかねません。
1人だけしかエンジニアを雇用できないのであれば迷わず外注すべきです。必ず後々の大きなトラブルになります。
※外注に関して下記の内容を追記します
複数人用意できないならば外注に頼るのはいいと思うのですが、その外注先で更に社内の常駐さん(一人)に丸投げしてましたとか言うホラーがあってですね_:(´ཀ`」 ∠): https://t.co/2UMuo4jrKl
— tkashi™@C18 (@tkashi_tw) August 8, 2018
これに関しては本当にその通りです。外注した先が1人体制では無意味です。その外注先のエンジニアがいなくなったり倒れたりしたらアウトです。そういった意味で外注先としてフリーランスも要注意です。外注先が複数人体制で対応してくれる開発会社であるかどうかもしっかり確認しましょう。
エンジニアを自社雇用する意味
エンジニアを雇用してシステムを内製化することは簡単ではありませんが、昔と違って今は技術情報もオープンとなりいたるところに情報がありますし、IT企業ではない一般企業が自社でエンジニアを育成することも可能です。
外注してもどうせ多重下請け構造となるSI企業に発注しても、SES企業からどこの誰かもわからないエンジニア?が集められてきます。そしてプロジェクトは炎上。
こんな非効率な仕組みしか提供できないSI企業に発注するくらいなら、自社で効率よくシステムを開発できる体制を作ることも検討すべきです。
システムを内製するということは、雇用のリスクをとるということですが、ITシステムが極めて重要となった今の時代は、エンジニアに任せられる仕事はいくらでもあるはずです。
そうなるともはやSI企業にシステムを発注する意味はなくなります。そこにお金をかけるくらいなら自社でエンジニアを雇用してシステムを内製することを検討すべきです。
もっと多くの企業がエンジニアを自社雇用すべき
これまでは大規模なシステムだとどうしてもSI企業に外注というのが一般的なやり方でしたが、そんなに大規模なシステムが必要なのであれば、エンジニアを自社で雇用して内部に開発部隊を作った方が効率的です。
雇用のリスクが取れないので外注することが普通だったのだと思いますが、今の時代は一つのシステムを構築しても、継続的に機能追加や機能改善を行っていくことが当たり前です。
また大規模なシステムが必要となるような組織であれば、一つのシステムが完成したとしてもまた他のところでシステム開発が必要となるはずです。
もちろん100%全てを自社開発にする必要はありません。ある程度の部分は自社で開発を行い、自社のリソースではあふれてしまう部分だけを限定して外注すれば良いのです。
少なくとも完成したシステムを自社で保守運用できるくらいの体制はあった方が良いはずです。
官公庁や銀行のような大きな組織が自前でエンジニアを雇用して内製したらどんなに効率的なことか・・・。
今は開発の仕事を外部に丸投げしすぎなんですよね。大規模なシステムなのであればなおさら、ある程度は自社で内製できる体制を作り、リソースがあふれる部分だけ上手に外注すれば良いのです。
そういうやり方をすれば、SIerのような大規模な外注先は必要なくなります。むしろ無い方が良いです。どうせ彼らも多重下請け構造で対応してるだけなのでそこに価値はありません。
グレーゾーンとしてのらりくらりやってきた偽装請負を完全に無くせば、SIer企業やSES企業は消滅する運命ですが、そうなったら今までSI企業を使ってきた企業は内製する道を考えるはずです。
それしか方法はないですし、それが一番効率的ですから。それが本来あるべき姿だと思います。今までは単に雇用のリスクを取っていなかっただけです。
世の中に自社開発で仕事をしたいエンジニアはあふれかえっていますし、今後どこかのタイミングで偽装請負が厳しく取り締まられるようになれば、自然と内製化の流れは加速するでしょう。