著者: 野原琉海(株式会社ラズリ代表)
エンジニアがこんなことを言うと商売あがったりなんだけど、正直に書く。
中小企業は、社内システムを自作しない方がいい。
「うちも業務に合ったシステムを作りたい」「既存のツールだと痒いところに手が届かない」。気持ちは分かる。でも、自社システムを作るということは、作った後にずっと面倒を見続けるということだ。
その覚悟があるか、という話をしたい。
作るのは一瞬。メンテナンスは永遠
システムは作って終わりじゃない。作った瞬間から、メンテナンスが始まる。
- セキュリティのアップデートが必要
- 使っているライブラリやフレームワークのバージョンアップが必要
- OSやブラウザの更新に合わせて動作確認が必要
- 法改正やルール変更に合わせて仕様を変更する必要がある
しかもメンテナンスを止めると、ある日突然動かなくなる。セキュリティの穴が空いたまま放置されるリスクもある。
アップデートするたびに何かが壊れる
エンジニアとして一番辛いのがこれだ。
システムをアップデートすると、予期しないエラーが起きる。これは珍しいことではなく、日常だ。
「AをアップデートしたらBが動かなくなった」「Bを直したらCに影響が出た」。この連鎖が発生する。
その対応にエンジニアがリソースを取られる。本来やるべき開発や改善ではなく、「壊れたものを直す」作業に時間を使う。
中小企業でエンジニアが1人しかいないなら、その人の稼働の何割かがずっとメンテナンスに消える。新しいことに使える時間が減る。
SaaSは競争で勝手に良くなる。自社システムは自分で良くするしかない
ここが一番伝えたいことだ。
freee、マネーフォワード、Slack、Notion。こういうSaaSには競合がいる。競合に負けないために、各社が自分たちのプロダクトをどんどん磨いていく。新機能が追加される。UIが改善される。セキュリティが強化される。ユーザーは何もしなくても、ツールが勝手に良くなっていく。
自社システムはそうはいかない。
機能を追加したければ、自分でエンジニアに依頼して、お金を払って作ってもらう必要がある。しかもその機能追加は売上に直結しない。社内の業務ツールを改善しても、お客さんが増えるわけではない。
つまり、SaaSは「競争原理で勝手に進化するツールを月額数千円で使える」のに対して、自社システムは「進化しないツールを数百万円かけて作って、さらにお金をかけてメンテナンスし続ける」ことになる。
冷静に考えると、どっちが合理的かは明らかだと思う。
「既存ツールだと痒いところに手が届かない」問題
ここまで読んで「でもうちの業務は特殊だから」と思った人もいると思う。
正直に言うと、その「特殊」は本当に特殊なのか疑った方がいい。
業務が特殊なのではなく、業務フローが整理されていないだけのケースが多い。業務を整理してみたら、既存ツールの標準機能で十分だった、ということは普通にある。
本当に既存ツールでは対応できない部分があるなら、その部分だけ小さなスクリプトを作って補完する方がいい。全体をフルスクラッチで作るのではなく、既存ツール+小さなカスタマイズで対応する。
それでも作るべきケース
全否定するつもりはない。自社システムを作るべきケースもある。
- 自社プロダクトとしてシステム自体が事業の核になる場合
- 既存ツールを徹底的に調べた上で、本当にどれも合わない場合
- 社内にエンジニアチームがいて、継続的にメンテナンスできる体制がある場合
つまり、「技術が事業の中心にある会社」は作るべきだ。
でも「バックオフィスを効率化したい」「社内の情報共有を改善したい」くらいの話なら、既存ツールで十分。
まとめ
- 社内システムは作るのが大変なのではない。メンテナンスが大変
- アップデートするたびにエラーが起き、エンジニアのリソースが取られる
- SaaSは競争原理で勝手に良くなる。自社システムは自分で改善し続けるしかない
- 「うちの業務は特殊」は本当に特殊かどうか疑う
- 作るべきケースは「技術が事業の中心にある会社」だけ
エンジニアとしてシステムを作る仕事をしている僕が言うのもおかしな話だけど、「作らなくて済むなら作らない方がいい」は本音だ。
「既存ツールで解決できるのか、それとも作る必要があるのか」の判断がつかない場合は、こちらからご相談ください。作る必要がないものに数百万円使う前に、一緒に考えましょう。