「システムを内製すべきか外注すべきか」
先日の記事で、「内製できそうなものは、作ってしまいましょう」と意気揚々と語っていたわけですが、作れそうだからと言ってすべて内製化していると、無限に時間を失ってしまいます。
私自身、Webエンジニア出身ということもあり、システムが必要となると、ついつい自分で作る気満々で考えが進んでしまう癖があります。ただ、最近は少し踏みとどまるように注意しています。
システムを内製すべきか外注すべきか、どのように判断したら良いのでしょうか。
まだまだ、正しい判断ができるわけではありませんが、最近の私の考えを少し共有します!
外注と内製のメリット・デメリット
こういった話は、挙げだしたらきりがないとは思うのですが、個人的に特筆すべきポイントを、
いくつか挙げてみます。
外注について
メリット
・自社の開発工数を大幅に削減できる
・内製よりもリリースが早い可能性が高い
・運用もお任せすることができる
・自社では取り扱えない技術を取り入れることができる など
デメリット
・内製に比べて費用が掛かる
・システムがブラックボックス化してしまう
・長期見たときにベンダーロックインがしてしまう可能性が高い など
上記に挙げたように、大きなメリットとしては、開発をお任せするので開発工数を大幅に削減することができることだと思います。また、内製チームが成長段階な場合、外注によりリリースを早めることも可能です。
例えば、私一人で開発すると3か月かかるシステムも、外注することで、1か月でリリースすることができるかもしれません。内製チームが一人の場合、どんなに工夫しても3人/月のシステムを1か月で作り上げるのは難しいと思います。
自社で取り扱えない技術に関しては、長い目で見れば技術を習得した後に作れば良いと思いますが、それだとずいぶん時間がかかってしまいそうです・・・。個人的には外注するというのは、システムを買うというよりも、時間を買うに近いのかなと感じます。
もちろん、デメリットで上げたように費用面では、内製よりも高額になってしまうことが多いと思います。また、基幹システムなどを外注で作ってしまうと内製したシステムとの連携が難しくなったり、DXを進めるためシステムを改修しようとしても、気が付いた時には社内の誰もシステムを理解できていない状態になっているかもしれません。この辺りも注意が必要そうですね。
内製について
メリット
・費用がかからない
・好きな時に好きなだけ改修、改良ができる
・社内に知見がたまる
・愛着が湧きやすい など
デメリット
・数少ないエンジニア(当社の場合)の作業予定が長期で確保されてしまう
・開発中ほかの作業が滞りやすい
・システムの技術レベルが自社のエンジニアのレベルに依存する など
費用面に関しては、外注のメリデメで述べたように内製のほうが安くなる場面が多いかと思います。また、内製の場合、工数や要件による契約などはないので、必要な時に必要なだけ改修・改良ができるというのもメリットだと思います。内製によって社内のエンジニアの技術レベルが上がり、次のシステムを作るときの効率が上がる可能性もあります。
一方で、当たり前ですが開発期間中、担当エンジニアの作業予定を長期で確保してしまいます。これは、当社のようなエンジニアの数が少ない状態だと、社内で動かしたい他のITに関わるプロジェクトを進めることが難しくなるため問題となります。また、外注の場合は必要な技術を得意とするベンダーさんを探せば良いのですが、内製となると社内のエンジニアの技術力を超えるものは作れなくなってしまいます。この点に関しては、前回記事の通り、作れそうなものは作ろうというスタンスで良いのかなと考えています。
まとめ
今回は私が考える、システム外注と内製のメリット・デメリットを挙げてみましたが、落ち着いて考えてみると当たり前なことばかりですね笑。 「とりあえず、作ってみましょう!」という思考になりがちだったので、私は気が付けませんでした・・・。
当面の私の判断基準としては、
・開発にかかる時間
・内製したときに得られる価値
を2つをメインの軸にしようと思っています。一瞬で作れるものに関しては内製してしまえばいいですし、内製したときに得られる価値が費用削減だけであれば、外注してしまったほうが良いのかなと思います。
とは言っても、やはりケースバイケースなので答えはありませんが・・・笑。
少しずつ、うまく考えられるようになれればと思います。