Book a consultation

Business system specification: what it should include before any code is written

A specification is an agreement between the company and the developer on exactly what will be built. The better it is prepared, the fewer surprises there are while the system is being built.

Why a specification, if “everyone knows what it is about”

During the initial talks, everyone pictures the system a little differently. The board thinks about reports, a manager about orders, and the developer about the database. A specification turns these ideas into a single description that everyone approves before work begins.

What a good specification should include

  1. The purpose of the system. What problem it solves and how we will know it works.
  2. User roles. Who will use the system and what they are responsible for.
  3. Processes. The successive steps of the work: from the initial request to closing the case.
  4. Screens. What each role sees, which buttons it has and what data it enters.
  5. Permissions. Who can view, edit, approve and delete.
  6. Reports. What summaries the board and managers receive, how often and from which data.
  7. Integrations. Which programs the system exchanges data with and in which direction.
  8. Initial data. What needs to be moved over from spreadsheets and old software.
  9. Phasing. What goes into the first version and what goes into later ones.

What is often missing

  • Exceptional situations. What happens when a document is rejected, an order is cancelled or an employee leaves the company.
  • Acceptance criteria. How both sides will agree that a given feature is ready.
  • A list of things the system will not do. It is just as important as the feature list.

How to read a specification as the client

You do not need to know anything about programming. For each role, simply ask: will this person be able to do their day-to-day work based on this description? If the answer is “I don’t know”, the specification needs more detail.

A specification is also the basis for a quote

Without a specification, every quote is guesswork. With one, the developer can reliably estimate the scope of work, and the company can compare offers that cover the same thing. That is why planning and the specification are the first stage of every project I take on. If you want to talk about your system, book a consultation.

Have a question on this topic? Let’s talk →