Skip to content
← All insights

What the word enterprise actually adds to a build

Chris Bacon4 min read

Enterprise software is not software that is bigger, or written in a more serious language, or hosted somewhere more expensive. The distinction is narrower than that and much more useful.

In enterprise software, the person who signs the cheque is not the person who uses the thing. Everything the word adds to a build follows from that.

A consumer product answers to its user. If the user likes it, the product succeeds. An enterprise product answers to a buyer who will never open it, on behalf of users who did not choose it, subject to a security reviewer who is looking for reasons to say no. Those three audiences want different things, and the software has to satisfy all of them.

Most of what makes custom software development expensive at this tier is not the feature list. It is the work that exists purely because of that split.

The predictable list

I have never seen an enterprise engagement that avoided all of these, and I have seen several where none of them were in the original estimate.

Single sign-on. Not a login page. SAML or OIDC against a directory the client already runs, with the edge cases that come with it: what happens when someone leaves, how group membership maps to permissions, what the system does when the identity provider is down.

Role-based access control. Real RBAC, not an is_admin boolean. The requirement usually arrives as “some people should not see salaries,” and the honest version of that requirement touches every query in the system.

Audit trails. Who changed what, when, and what it was before. This is straightforward if it is designed in and close to impossible to retrofit faithfully, because the history you did not record is gone.

Data residency and retention. Where the data physically lives, how long it is kept, and how it is deleted on request. This is a schema and infrastructure question, not a policy document.

Procurement review. A security questionnaire, sometimes a penetration test, sometimes a vendor assessment that takes longer than the build. It is not technical work but it consumes calendar time and it can require changes.

None of these are exotic. All of them are boring. Together they routinely account for a large share of an enterprise build, and they are the first things cut from an optimistic estimate because they are invisible in a demo.

Why they get missed

A demo shows the happy path to the user. Every item on that list is invisible on the happy path. SSO looks like a login. RBAC looks like a page that loads. Audit trails look like nothing at all.

So the demo lands, the buyer is pleased, and the work that was never estimated arrives during the security review — at the point where the timeline has already been communicated upward. That is the mechanism. It is not incompetence; it is a predictable consequence of estimating from a demo.

The one that is worth doing early

If you take one thing from this: design the audit trail before you build the first write path.

Authentication can be swapped in. Permissions can be tightened, painfully. But an audit trail is a claim about the past, and you cannot make that claim retroactively. If the requirement arrives in month nine, the honest answer is that history before month nine does not exist, and that answer is sometimes disqualifying.

The pattern I use is to make the write path itself produce the record — the change and the reason for it are the same transaction, so there is no way to mutate state without leaving a trace. It costs a little at the start and it is the difference between “we can show you” and “we believe so.”

The same principle drives the matching engine on the case studies page: every point the scoring engine awards carries a reason code, so the system can explain a result rather than assert it. That was not built for compliance. It turned out to be the thing that made the output defensible.

What I would push back on

Not every internal tool needs this treatment, and “enterprise” is sometimes applied to a system with eleven users because it lives at a large company. If the users all sit in one team, all have the same permissions, and nobody outside that team will ever review it, most of the list above is overhead you will not recover.

The test is not company size. It is whether the buyer, the user, and the reviewer are three different people. When they are the same person, build the simpler thing.

The limit on this advice

I can describe the shape of this work and what it costs to skip. I cannot tell you which of these your specific security reviewer will care about, because that varies by industry, by regulator, and sometimes by individual. Anything more specific than the list above would be a guess dressed as expertise.

Related reading: custom business software covers the threshold where a spreadsheet stops being enough. Application development covers the four decisions that set the cost, of which the permission model is the one this article’s list depends on most. And the development process covers how this work is sequenced.