The short answer
Buy software when the job is one that most companies do the same way, such as payroll, email or accounting. Build it when the way you do the job is part of why customers choose you, or when nothing on the market fits without painful workarounds. Most companies should buy most things and build only the few that make them different.
Key points
- Buy the ordinary. Build what sets you apart.
- Bought software is cheaper to start and costs you flexibility.
- Built software costs more to start and has to be maintained.
- Count the hidden costs on both sides before deciding.
- A middle path exists: buy the base and build the part that is unique.
The one question that settles most cases
Martin Fowler describes a useful split between utility software and strategic software. Utility software does a job every company needs done and nobody wins by doing differently. Strategic software supports the thing that makes your business distinct.
Ask of any system: if we did this exactly like our competitors, would we lose anything? If not, it is a utility, and you should buy it. If yes, it is strategic, and it deserves to be built around how you work.
Side by side
| Buy | Build | |
|---|---|---|
| Time to start using it | Short | Longer |
| Upfront cost | Low | Higher |
| Ongoing cost | Subscriptions, per user or per use | Maintenance and hosting |
| Fit to your process | You adapt to the tool | The tool adapts to you |
| Control over changes | The vendor decides | You decide |
| Who owns the data and logic | Shared with the vendor | You |
The middle path
Build or buy is rarely all or nothing. A sound pattern is to buy the standard pieces and build only the layer that is yours.
- Buy payments, sign-in, email delivery and accounting. Build the workflow that uses them.
- Start on an off-the-shelf tool to learn what you need, then build once the gaps are clear.
- Use a low-code platform for internal tools where polish does not matter. See Low-code vs no-code.
How to decide
- Write down the job and how you do it today.
- Ask whether doing it your own way wins or keeps customers.
- Try the best existing tools for a real task, not a demo.
- List the workarounds each would force, and what they would cost over a few years.
- If the workarounds are small, buy. If they change how you serve customers, build.
When we scope a project in web app development, the first step is checking whether something off the shelf already fits. If it does, we say so.
Sources
Checked when this guide was written.