システム開発を内製するか外注するか

2015/11/23

顧客企業の担当者さんからよく聞く愚痴があります。社長や上司からシステム開発を内製化しろと言われているけれどエンジニアの採用が思うように進まない、ということです。

お客さんの前なのであまり露骨には言えないのですが、正直なかなか難しいだろうなあ、と思ってしまいます。

Insourcing or Outsourcing

弊社(株式会社オイアクス)の主要な顧客は、スタートアップあるいは中小企業です。

面白いウェブサービスを作っているとかで業界的に有名でない限り、なかなか求人情報がエンジニアの視界に入ってきません。人を集める段階でかなりハードルが高くなります。

運良くエンジニアを採用できたとしても、長く働いてもらえるかという問題があります。

エンジニアにとって魅力的なキャリアアップの道筋を用意できないと、やがて転職してしまうでしょう。


もちろん会社の経営陣が内製化にこだわるのには理由があります。

コスト削減や開発の迅速化につながりそうな気がしますし、社内にノウハウがたまりそうな感じもします。

しかし、長い目で見て本当にシステム開発が安く・速く進むようになるのかは難しい判断です。会社の「ノウハウ」といっても、それがエンジニアの脳内にあるだけならば、退職とともに霧散してしまいます。


エンジニアに限りませんが、人を採用して育てていく、というのはとても難しいことです。

やってみせ、言って聞かせて、させてみせ、ほめてやらねば、人は動かじ。

新たに採用したエンジニアに本領を発揮してもらうには、コーチ役が必要です。

御社にエンジニアに対するコーチングを行える人材がいるでしょうか。

Coaching


では、内製はあきらめて外注一本でやるべきでしょうか。

ここで参考になるのは、ソニックガーデンの倉貫氏が提唱している顧問プログラマという考え方です。

顧問弁護士や顧問税理士と契約を結ぶような流儀で外部のソフトウェア会社にシステム開発をアウトソース。

単なる内製や外注ではない第三の道です。

普通の外注では、提案依頼書(RFP)とか要件定義書を発注先候補の業者に提示し、見積書をもらって、契約して、開発してもらうという流れになります。「顧問プログラマ」の場合は月額固定料金です。また、「顧問プログラマ」は客先に常駐しません。基本的に所属会社のオフィスに持ち帰って仕事をします。

世間や社内のニーズを汲み取りながら柔軟に仕様を変更しつつシステムを開発したい場合には、よさそうな方法です。


ちなみに、ええと、まあこれが書きたかったのですが、弊社でも「顧問プログラマ」的な仕事は大歓迎です。しかし、実際には、日本の伝統的な企業が「顧問プログラマ契約」を締結するのは社内手続き的に難しかったりするので、状況に応じていろんな種類の契約を結んでいます。話を聞いてみたいという方はこちらからお問い合わせください。


(追記) この記事の続きとして「顧問プログラマ」再考を書きました。合わせてお読みください。