Business applications often replace a mixture of spreadsheets, messages, and manual approvals. That means the project is partly about software and partly about making an implicit process explicit. The best starting point is a real task performed by a real person, including the information they need and the decisions they make.
Define the workflow and its boundaries
Describe where the task starts, what changes along the way, and what completion means. For a service request, the journey might include submission, assignment, review, and closure. Decide which parts belong inside the application and which remain in other systems. This prevents the first release from becoming an attempt to replace every tool.
Document exceptions while the process is still easy to change. Can a request be reopened? What happens when the assigned person is absent? Which fields become fixed after approval? These questions shape the data model and interface. Leaving them until development often produces inconsistent rules across different screens.
Identify roles and permissions
List what each role may view, create, update, and approve. A customer, an internal coordinator, and a manager may share some information while having different responsibilities. Avoid assuming that hiding a button is sufficient. The underlying application must enforce access when an action or record is requested.
Use concrete examples to review the permission model. Can a customer change another customer's request by modifying an identifier? Can a former employee still access an active session? The exact controls depend on the system, but the requirement should be understandable to the business owner before implementation begins.
Design the information before the dashboard
Identify the important records and how they relate: customers, requests, approvals, attachments, and status changes. Decide which fields are required, where values originate, and which system owns them. Consistent identifiers and clear validation make later integrations and reporting much easier.
Think about change history. If an approval or delivery date is important, decide whether the previous value and the person making the change should be recorded. Also plan how records are corrected or archived. These decisions are easier to make deliberately than to reconstruct after staff discover conflicting information.
Prototype the primary journey
A prototype should help users attempt the work, not simply admire a dashboard. Give someone a realistic request and ask them to complete the task without guidance. Observe where they hesitate, misunderstand a label, or need information that the screen does not provide.
Test on the devices people will actually use. A coordinator at a desk and a technician in the field have different constraints. Use readable labels, clear feedback, and straightforward navigation. W3C's accessibility guidance provides a useful reference for considering keyboard use, text alternatives, contrast, and other aspects of usable interfaces.
Build a complete vertical slice
Deliver one journey through the interface, application logic, and data storage before creating many disconnected screens. A complete slice makes it possible to test assumptions about validation, permissions, and deployment. It also gives stakeholders a more meaningful demonstration than a collection of pages filled with sample numbers.
Keep changes small enough to review. AI assistance can help draft routine code, but the team should verify the behaviour against agreed criteria. Record important architectural decisions and avoid introducing dependencies without a reason. The application needs to remain understandable when a different developer adds the next feature.
Test failure paths before launch
Check duplicate submissions, missing inputs, expired sessions, and unavailable integrations. Verify that the user understands whether an action succeeded. A timeout after a submission should not encourage repeated clicks that create several records. Important failures need clear recovery steps and enough information for support to investigate.
Test with representative data volumes and roles. A list containing five sample records can behave differently from one containing thousands. Ask users to confirm the expected outcomes rather than only report whether a page loads. Functional correctness, usability, and operational readiness are related but distinct checks.
Plan the handover and first release
Agree who owns hosting, account administration, backups, and incident response. Document how changes move from development to the live environment and how a release can be reversed. Confirm who will answer questions from staff during the first days of use. Launch is the start of operation, not the end of responsibility.
Roll out to a bounded group where practical. Watch support requests and incomplete tasks, then address the most important friction before expanding. Keep the original success measures visible: time to complete the workflow, information quality, or fewer manual handoffs. A long feature list is not a substitute for those outcomes.
Launch checklist
- The primary journey works for every intended role.
- Validation and access rules are enforced beyond the interface.
- Important changes and failures can be investigated.
- Representative users have tested ordinary and unusual cases.
- Hosting, backups, support, and administrative ownership are agreed.
- The team has a plan for feedback and controlled future releases.
Frequently asked questions
Should we choose the technology stack first?
No. Begin with the workflow, users, integrations, and operating constraints. The stack should support those needs and be maintainable by the delivery team. A fashionable framework is not a business requirement, and changing technology alone will not clarify an unclear process.
Can a web application work on mobile?
Yes. Responsive design can support many mobile workflows, but the experience must be tested on suitable devices. Offline work, hardware access, and frequent field use may introduce additional requirements. Evaluate those needs before deciding whether a web application or a dedicated mobile app is more appropriate.
What should happen after the first release?
Review actual task completion and support requests, then prioritise improvements based on evidence. Maintain dependencies and monitor important failures. Give one person responsibility for product priorities so the application evolves through deliberate decisions rather than accumulating unrelated requests from every department.
Sources and further reading
Official documentation for the technical topics discussed in this guide.




