内製化

社内システム開発の内製化で懸念すべき5つのデメリット

mountaineering-895659_1280

こんにちは。
ライジングサン・システムコンサルティングの岩佐です。

この記事では、社内システム開発の内製化を検討する上で懸念されるデメリットについて解説します。

私達は今、社内システム開発の内製化を支援する立場にありますが、内製化すれば今ある全ての問題が解決できるという「銀の弾丸」ではありません。

内製化にも必ずデメリットはあります。

今回は、ソフトウェア開発を内製化することによるデメリットを5つの視点から解説していきたいと思います。

また、そのデメリットに対応するための私達からのアドバイスも合わせて書かせていただきました。

1.技術者の採用基準がわからない

ソフトウェアの内製化を考える時に、真っ先に問題となるのが「誰がやるのか?」ということでしょう。

そしておそらく多くの企業が考えることのひとつに、外部から技術者を採用する..があります。

この時に問題となるのが「有能な技術者」をどうやって見つけてくるか…ということです。

既にあなたの会社のソフトウェア開発を委託している企業があり、その中に「ぜひうちで採用したい」という優秀な技術者がいれば、委託先の会社にしっかりと話しを通した上で、実際に声をかけてみるのも良いかもしれません。

しかし、残念ながら事業会社として「この人をぜひ採用したい」と思えるような技術者に出会うことは非常に難しいでしょう。

特にこちらに記事にも書いた通り、今エンジニアのマーケットには、「ビジネスとITを有機的に結びつけて、具体的な解決策を提示し、そして実際に動くソフトウェアを自分の手で創ることができる」レベルの技術者はほとんどいません。

おそらく内製化を進める上で、その担当者に期待する能力としては、具体的なソフトウェア開発技術もさることながら、その技術を自社のビジネスにどの様に活かせば、より企業の収益性を向上させ、企業の成長に貢献できるかという「ビジネス的な視点を持っているか」を最重要視すべきです。

残念ながらこのような技術者はなかなかいません。

もしこのような技術者に出会えたら、「採用」とまでは行かなくても何らかの形で関係を持ち続けると良いと思います。例えば毎月10万円前後でも良いので、顧問契約等を締結して、常にそのようなエンジニアと関係を持ち続けることは、あなたの会社にとって大きなメリットをもたらします。

また、技術者の給与体系もよく分からない部分だと思います。せっかく良さそうな技術者と出会っても、「一体いくらの給料を支払うのが妥当なのか」という問題がクリアできなければ、その技術者の採用は困難です。

さらに、その技術者をどのような基準で評価し、どのようなキャリアパスを描いてあげるかも悩ましいところです。

事業会社では、ソフトウェア開発技術の高いことが、必ずしも評価基準にはなりませんし、そもそもその技術者の技術力を正当に評価することは、その評価者が技術者でない限り、そう簡単にできるものではありません。

また評価される側の技術者としても、「シロウトから評価される」ことに対する抵抗感を持つ人も必ずいるでしょう。

このように、外部からソフトウェア開発技術者を採用するには、非常に多くの、そして解決が困難な問題…つまりデメリットがあります。

私達からのアドバイス

弊社ではソフトウェア開発の内製化を進めるにあたり、新たに人材を採用することは推奨していません。あくまでも今社内にいるスタッフを教育し、数名のチームを構成して開発体制を整えることを推奨しています。

「技術者でもないスタッフがソフトウェアをつくることができるのか?」という疑問はあると思いますが、私達のお客様は実際に事業部門のスタッフ様がソフトウェア開発しています。

現在、ソフトウェア開発ツールは劇的に進化をして、高度な専門知識を持っていなくても「程々」のソフトウェアを開発できるようになりました。

もちろん、高度なソフトウェア開発には困難を伴いますが、あなたの組織やチームの問題を解決するために、本当に高度な技術を用いたソフトウェアが必要か否かは一考の余地があると思います。

自分たちでできることは自分たちでやる。そしてできない部分だけを、高度な専門知識を持ったプロに任せるという選択肢もあります。

自分たちで手を動かしてソフトウェアを作っていると、自然に「目利き力」が養われます。

ソフトウェア開発のプロと言っても、実態は玉石混交。あまり実力が無いにもかかわらず、所属する会社のカンバンの大きさで仕事を取ってくるソフトウェア開発会社はたくさんあります。そのような実力が無い会社を見抜くには、自分たちで手を動かして「目利き力」を養うのが一番効果的です。

2.技術者の退職リスクがある。

せっかく採用した、もしくは社内で育てた技術者が突然退職するリスクがあります。

実は私自身も、社会人になって最初に入社した会社は首都圏を中心に事業を展開している大手製パンメーカーだったのですが、どうしても自分の技術力を外で試したくなって退職。その会社には非常に申し訳ないことをしてしまいました。

その会社は大企業に分類される規模で、他にも優秀なエンジニアがたくさんいらっしゃったので大きな問題にはなりませんでしたが、人材の限られる中堅・中小企業でこのようなことが発生すると、極めて大きな痛手を被ることになります。

技術者はどうしても、自分の「ウデ」が上がってくると、それがどこまで通用するのか、外で試してみたくなります。

これは、雇用している側からすると「勘弁してくれ…」となるかもしれませんが、技術者としては向上心が感じられる非常に好ましい傾向でもあります。

ぜひ、せっかく採用した技術者が他に転職しないように、事前策を考えておくことをオススメいたします。

私達からのアドバイス

技術者の向上心からくる退職には、大きく「ソフトウェア開発会社への転職」か「独立」の2つがあります。

いずれにしても、引き続きその技術者との関係を保っておくために、ソフトウェア開発会社に転職しても、そのソフトウェア開発会社と取引を開始するという手法もありますし、独立であれば、その会社との取引を開始するという方法があります。

特に技術者の独立志向に関しては歓迎ムードで、逆に「支援する」ぐらいの気持ちで良いかもしれません。

私自身が独立した時も、最後に勤務していた会社が気持よく送り出してくれたと同時に、私の最初のクライアントとしてご契約をいただきました。

これは、技術者とのWin-Winの関係を築くことができる極めて優れた対応です。

また、ひとりの技術者が退職しても大きなダメージを被らないように、リスク分散しておくことも必要でしょう。

例えば社内で数名の担当者を育成する、もしくは外部の顧問エンジニアやコンサルタントと少額で継続的なサポート契約を結んでおき、その技術者が開発したソフトウェアがブラック
ボックス化しないようにする仕組みをあらかじめ構築しておくことは、極めて有効な対策です。

3.開発が属人化するリスクがある。

数名体制で開発チームを組織できる体力・規模の会社であればこの属人化リスクを回避することは比較的容易かもしれません。

しかし、人件費の限られる中堅・中小企業が複数名の開発者を常に抱えておくことは、コスト的に非常に厳しいのが現実です。その為、誰かひとりにソフトウェア開発の業務が集中してしまうということはよくあります。

そしてそのスタッフが、病気や退職等で業務から離れると、そのソフトウェアは一気にブラックボックス化します。

修正したい機能や、追加したい機能があっても、中身の構造がその人にしかわからないので、容易に手を出すことができなくなってしまいます。

また、外部のソフトウェア開発会社に頼もうとしても、「他人がつくったものに手を入れることはできません」と言われることがほとんどでしょう。

そして、「同じ機能のソフトェアをうちで開発します」と、想定外の金額が記載された見積書が出てくることも多々あることです。

このように、中堅・中小企業の内製化で一番の問題となってくるのはこの「属人化」の問題です。

これは人件費が限られた中堅・中小企業ではどうしても避けられないことだと思います。

私達からのアドバイス

対策としては2つあります。まずひとつ目は社内で複数名の内製化担当スタッフを育成することでしょう。

逆に、複数名のスタッフをアサインできない人件費的な事情や、人員構成であれば、ソフトェアの内製化は一旦見送るべきだと思います。

次に、若干コストはかかってしまうのですが、弊社のような内製化を支援する企業と少額の顧問契約を締結しておき、その顧問エンジニアと社内の内製化担当スタッフが協力してソフトェア開発を進めるという方法があります。

この方法だと、外部に100%アウトソーシングをするよりも、コストは大幅に下げることができます。

さらに社内の内製化担当スタッフがもし退職したとしても、顧問エンジニアがいるので、開発したソフトウェアがブラックボックス化することはありません。

4.開発者の育成に時間がかかる。

ソフトウェア開発技術者の育成には時間がかかります。

もしあなたがソフトウェア開発を全く経験したことがないスタッフを内製化の担当者としてアサインしようとすると、実際に業務で使えるレベルのソフトウェアを開発するまでに、半年・1年の時間がかかるでしょう。

もちろん、何の言語やどういった技術を使って開発するか、もしくは何の業務を内製化の対象とするのかによっても、大きくその時間は前後します。しかし、どのような開発ツールを用いるにしても一定の教育期間は必ず必要になります。

また、スタッフの教育には費用も発生します。このようにスタッフの教育費用の捻出が難しい、もしくは開発環境を用意する費用を捻出することが難しいのであれば、やはり安易に内製化へかじを切るべきではありません。

教育プランをしっかりと構築し、それが現実的なレベルまで落とし込めて、はじめて内製化に着手すべきです。

私達からのアドバイス

内製化を検討するときには、全てのソフトウェアを、全ての作業において自社で内製化する必要はありません。詳しくはこちらの記事にありますが、業務と技術の側面から戦略的に内製化を進める必要があります。

dreamstime_m_47607740システム開発の内製化を戦略的に進めるための3つのポイント
ソフトウェアの内製化は社内システムの全てを自社で開発すれば良いというものでありません。 また、ソフトウェア開発業務にフォーカ...

私達は将来的なスケールアップのし易さやiPhone/iPad等のデバイスに対応しているなどの理由でFileMakerプラットフォームを推奨しています。

しかし、より簡易的なソフトウェア開発ツールであれば、サイボウズのkintone等も上げられます。例えばkintoneであれば、感のいいスタッフであれば1〜2日のトレーニングで、それなりのアプリケーションを開発することが可能です。

重要な事は、一般的なソフトウェア開発会社が使っている技術をそのまま使おうとしないことです。

また、スタッフの教育費用に関しては、各種助成金・補助金の制度があります。特に中堅・中小企業向けのIT関連・人材育成関連助成金は、ここ数年、継続的に実施されているので、ぜひ調べてみると良いでしょう。

5.成果が出るまでに時間がかかる。

ソフトウェア開発の内製化で得られる効果として最も期待するものは「スピード」です。

現在主流のフルアウトソーシングでは、契約交渉に半年、システム開発に3ヶ月というおかしな状況が多々発生しています。

フルアウトソーシングでは、システム開発を委託する方も受託する方も大きなリスクを背負います。そのリスクを少しでも回避できるように、慎重に契約交渉を進めます。

しかし、この契約交渉自体には全く付加価値はありません。いくら契約交渉を慎重に進めても、その時点ではお互いに1円も儲からないのです。

また、この契約交渉に費やす期間も、実はシステム開発費用に含まれていることを忘れてはなりません。プログラマやSEに仕事がない期間も、ソフトウェア開発会社は社員に給料を払う必要があります。

また、契約交渉を進める営業スタッフや法務部門のスタッフの給与も、ソフトウェア開発会社は支払わなければなりません。この間に費やされた人件費は、後でシステム開発費用の中に内包されて提示されます。

当然そのような見積もり項目は明示されていませんが、ソフトウェア開発会社は間接部門のスタッフにも給料を支払わなければならないので、これは当然の事になります。

一方、内製化によって期待される「スピード」に満足できるレベルに達するまでには、やはりそれなりの時間がかかります。

おそらく企業として、満足できるレベルに達するには、少なくとも2〜3年の時間軸で見ておかなければならないでしょう。

「そんなに待つことはできない!」と判断すれば、もちろんムリに内製化を進める必要はありません。

しかし、2〜3年の時間軸でしっかりと内製化の技術力とチーム体制を育成してきた企業は、ライバル企業に対して大きなアドバンテージを築くことができるでしょう。

私達からのアドバイス

最初から壮大なスケールのシステム開発を期待するのではなく、最初の半年から1年は小規模で費用対効果の高い開発分野を見つけ、その部分に集中して内製化を進めることが重要です。

大規模な開発は技術的なリスクが大きいので、内製化スタッフの技術力がある程度成熟してきたところでトライすべきでしょう。

また、外部の顧問エンジニアをうまくつかって、「知識や知恵だけを拝借し、実際の開発は自分たちで行う」という方法も取れます。

実際、私達が支援させていただいているお客様で、1年以上ある問題について悩んでいたお客様の技術的な問題を、私達がものの数分で解決した事があります。1年前にその問題が解決していれば、より早く効果を得られていたことになります。

内製化だからといって、全ての問題を自分たちで抱え込んでしまうと、せっかく期待した「スピード」を殺してしまい、最悪のケースとしては「アウトソーシングしたほうが安くついた」なんてことにもなりかねません。

こちらの記事にも書いた通り、内製化に成功している企業は外部の力をうまく使っています。全てを抱え込むこと無く、戦略的に外部の力を使うことをお勧めいたします。

まとめ

この記事では、社内システムの内製化を検討する上で懸念されるデメリットについて解説しました。もちろん、こちらに書かれていること以外にも様々なデメリットがあることは事実だと思います。

私達は今、社内システムの内製化を支援する立場にありますが、やはり内製化すれば全ての問題が解決できるという「銀の弾丸」ではありません。

どのような方法を取るにしても、必ずメリットとデメリットがあります。

大切なことは、そのデメリットに対してのコントロールする手段を持ち合わせているか否かです。

もし、デメリットに対するコントロールの手段を持っていなければ、やはり安易に内製化に踏み出すべきではありません。

逆に、アウトソーシングに関しては関連図書も豊富で、様々な失敗事例もネット上にはあふれています。なので、アウトソーシングのデメリットをコントロールする手段を見つけるほうが、より容易かもしれません。

内製化で得られる最も大きなリターンは優秀は人材

それでも私達が内製化を支援する理由は、クライアント企業様の業務改善に対して確実に成果が出るからです。

少し話はずれてしまいますが、個人において最も確実なリターンが得られる投資は「自己投資」だと言われます。

ソフトウェアの内製化で最も大きなリターンは、ソフトウェアから直接得られる費用対効果もそうですが、やはり「人材が育つ」ことでしょう。

今、多くの企業はどこも収益性があまりよくなく、人材育成にお金をかけることができなくなっています。

しかし、それでも人を育てるということに力を入れている会社は、確実な「リターン」を得ることができるのは間違いありません。

ただ、この確実なリターンを得るためには「長期投資」の心構えが必要なのです。


最後までお読みいただきありがとうございました。
この記事にご興味を持っていただいた方には、こちらの記事もおすすめです。

checklistシステム開発の内製化にFileMakerプラットフォームを推奨する7つの理由
この数年で、情報システムの内製化に関する話題が確実に増えてきました。 日経コンピュータや日経情報ストラテジーを始めとする、主...

IMG_2715-compressorシステム開発内製化の先進企業から学ぶ3つの教訓
最近ソフトウェア開発の内製化が話題に成っていますが、実際に内製化に取り組まれている企業はどのような結果を出しているのでしょうか...

dreamstime_m_47607740システム開発の内製化を戦略的に進めるための3つのポイント
ソフトウェアの内製化は社内システムの全てを自社で開発すれば良いというものでありません。 また、ソフトウェア開発業務にフォーカ...