Building custom software: how to scope a useful first version

A dedicated application often starts with a long wish list: planning, customer information, documents, reporting and integrations all need improvement. The list is useful, but it is not yet a development brief. A useful first version covers one complete workflow that someone can actually use. This could be an internal tool, customer workspace, configurator or standalone web application.

Start with a user and a decision

Describe who uses the application, what they need to complete and which information they need. “A dashboard” is too broad. “A planner sees which requests are complete and assigns them to an available team member” makes the feature testable. Also specify who may view, change and approve information. A customer workspace needs different access from an internal tool.

Choose a complete workflow, including exceptions

Map the workflow from input to outcome. What starts it? Which checks happen? Which system stores the definitive status? Who receives a task when information is missing? A first version does not need to serve every department, but the selected workflow needs a clear end. Building only a form merely moves the work if follow-up remains unclear.

Include the most likely exceptions from the start: a missing document, duplicate request, rejected approval or temporarily unavailable system. Define what the user sees and how processing can continue. Less common variants can wait, provided the team has a clear interim way to handle them.

Illustrative example: scheduling a request

Imagine a service company receives requests by email and keeps its schedule in a separate system. A scoped first version could include a request form, a planner overview, checks for missing information and an approved transfer to the scheduling system. Customers see only their own request and status. This is a design example, not a delivered client case or a promise about a particular system.

A mobile app, automated capacity forecasting and extensive management reports remain outside this initial release. Record these decisions alongside the features that will be built. The team can then judge whether the first workflow is useful without every later idea immediately becoming part of the project.

Check data and integrations before setting the schedule

Identify where data comes from and who owns it. Are customer identifiers stable? Is the required API available? Can you test without processing real requests? Which permissions and limits apply? If access or documentation is missing, investigating it belongs in the first step. Basing a schedule on an unproven integration creates avoidable uncertainty.

Make acceptance concrete

Use scenarios the team can carry out: submit a complete request, correct a missing field, reject an approval and retry a failed transfer. Agree which data and statuses should then be visible. Include access rights, error messages and use on a small screen. “It works” is meaningful only when you specify for whom, under which conditions and with which outcome.

Agree maintenance and expansion separately

Development costs are separate from agreements on hosting, maintenance and support. Specify who detects incidents, performs updates, checks backups and reviews changes. Also agree how code, configuration and documentation can be handed over. After the first release, users can help decide which expansion adds the most value; the original wish list remains a useful reference.

Compare custom and standard software first, explore our custom software or discuss the first application you want to build.

Previous insight
Next insight

Start with your question

Where does your team get stuck?

Your first enquiry does not need to be a technical brief. Tell us which systems you use and where work gets stuck. Together we discuss what is possible and which step you can take next.

Discuss my project