Most businesses should not build custom internal software. That is an odd thing for a software studio to lead with, but the alternative is worse: a build that solves a problem a spreadsheet was handling fine, that nobody maintains after the first year, and that quietly becomes the reason a simple process change now requires a developer.
So here is the framework we actually use when an owner asks whether to build. It has three answers, and two of them are "no."
Start by assuming the answer is no
The default should be no, because building is the option with the longest tail of obligations. A spreadsheet has no release process. Packaged software has a vendor whose job is to keep it running. Custom software has you, forever, or it has whoever you hire next.
The question is not "would a custom tool be nicer." It almost always would. The question is whether the gap between what you have and what you need is big enough, and permanent enough, to be worth owning a piece of software over.
When the spreadsheet is genuinely fine
Spreadsheets get mocked more than they deserve. They are flexible, everyone already knows them, they cost nothing, and you can change the structure in the middle of a workday without asking anybody. Leave yours alone when most of these are true:
- One or two people edit it. Conflicts and version confusion are what break spreadsheets, and they scale with the number of hands.
- The process is still changing. If you are altering how the work runs every few weeks, you want the thing that is cheap to change. Encoding a process in software makes sense after the process settles, not before.
- Volume is low enough to eyeball. If a person can scan the sheet and spot something wrong, you have a working error check for free.
- Nothing depends on it being right at a specific moment. No customer sees it, no payment fires off it, no legal obligation hangs on it.
A spreadsheet stops being fine when errors start arriving from the outside, when a customer or a crew member tells you something was wrong before you noticed. That is the signal, not the file size.
When off the shelf is the answer
The next question is not "build or spreadsheet," it is "has someone already built this." For most business functions, someone has, and the packaged product is better than what a first custom build would be, because it has years of edge cases baked in.
Buy when your need is common. Accounting, payroll, scheduling, email marketing, e-commerce, document signing, basic CRM. These are solved categories. Your version of invoicing is not so unusual that it justifies writing invoicing software, and the parts that feel unusual are usually habits rather than requirements.
The honest downside of buying is that you adapt to the tool. You will change some of how you work to fit its assumptions, and you will pay for features you do not use. Both are usually a good deal. The time you spend adapting is bounded. The time you spend maintaining your own software is not.
The signals that favor building
A custom internal tool starts to make sense when several of these are true at once. One alone is not enough.
- The workflow is the business, not overhead. If the process is how you win work, being different from everyone else is the point, and a generic tool flattens exactly the thing you are good at.
- You are paying people to move data between systems. Someone exports from one tool and retypes into another every week. That is a wage you are paying to a gap between products, and it recurs forever.
- Per seat pricing scales with a number that grows fast. If the cost of a packaged tool tracks headcount or job count and both are climbing, the arithmetic eventually changes. Do the arithmetic with your real numbers before you believe it.
- You have already built it badly. A spreadsheet with macros, three linked forms, and a shared drive of naming conventions is a custom application. It is just one with no tests, no documentation, and a single author.
- You have tried two packaged tools and gone back. Once is bad luck or bad setup. Twice suggests your requirements really are outside what the market serves.
- There is a constraint the vendor will not meet. Data that cannot leave your control, an industry rule with specific record keeping, an integration with a system nobody else uses.
Notice what is not on that list: frustration with a current tool, a feature request the vendor declined, and a sense that things ought to be more streamlined. Those are real feelings and poor reasons. They tend to produce a build that replicates the old tool with your preferences applied, which is the most expensive way to get a preference.
The costs nobody puts in the pitch
The build is the cheap part. What follows is the part that decides whether it was worth it.
- Somebody has to answer when it breaks. On a Saturday, during your busy season. Decide who that is before you start, not after.
- It needs changes forever. Tax rules change, a vendor changes a file format, you add a service line. Custom software is a garden, not a monument.
- Adoption is not automatic. A tool your crew will not open on their phone is worth nothing regardless of how well it is built. The people who will use it daily should shape it before it is written.
- Your data has to be able to leave. Whether you build or buy, you should be able to export the whole thing in a normal format. Ask that question early and take a vague answer as an answer.
A smaller first step
When the signals point toward building but you are not certain, shrink the commitment instead of debating it.
Map the process first, on paper or on a canvas like Boards, every step and every handoff, with the people who do the work standing there. A surprising number of build projects die usefully at this stage, because the map reveals that the problem is two undefined handoffs rather than missing software.
If it survives the map, build the narrowest useful thing: one seam, the single worst piece of manual copying, and nothing else. Keep buying the boring parts. Almost nobody needs custom accounting. Judge the small build after a full season of real use, and expand only what people actually reached for.
The takeaway
Build when the process is genuinely yours, when you have proof that packaged tools do not fit, and when you know who owns the thing a year from now. Otherwise buy, or leave the spreadsheet alone and fix the two handoffs that are actually causing the trouble.
The right recommendation is often the cheapest one. If you want a straight answer about which of the three you are looking at, ask us, and be ready to hear that you should not build.
Filed Under
Written by
Isaac Juracich
Full-stack engineer building production software for businesses that need it done right. Based in La Crosse, WI.
More about Isaac