Step-by-step guide to writing requirements, running discovery, and setting realistic budgets and timelines for custom software.
Best for: Business owners, IT leadersPractical guide for business decision-makers
Who this is for
Business owners and IT leaders planning a custom software project for the first time, or those who've had projects go sideways before.
Question this answers
How do I define what I need, get accurate quotes, and set realistic expectations before committing to a build?
What you'll leave with
How to run a structured discovery process
What good requirements look like (with examples)
How to set realistic budgets and timelines
The common scoping mistakes that cause blowouts
Why scoping matters
Poor scoping is the single biggest reason software projects go over budget. Not bad developers, not wrong technology choices; unclear requirements that shift during development.
A well-scoped project has a defined outcome, clear requirements, realistic budget, and an agreed timeline. It gives the development team what they need to quote accurately and deliver predictably. A poorly scoped project has vague goals, assumptions instead of requirements, and a budget pulled from thin air.
The difference between these two outcomes is usually 2-4 weeks of structured discovery work upfront.
Before you start
Before talking to any developer or agency, answer these questions:
What problem are you solving? Not "we need an app". What specific business problem does this solve? What's the cost of not solving it?
Who uses it? List every type of user and what they need to do. Internal staff? Customers? Administrators? Partners?
What exists today? Is this replacing a manual process? An old system? Multiple spreadsheets? Understanding the current state shapes the solution.
What systems need to connect? CRM, ERP, accounting, payment processing. List every integration need early.
What's the budget range? Even a broad range ($50K-$100K vs $150K-$250K) helps frame the solution appropriately.
The discovery process
Discovery is a structured planning phase before development begins. A good discovery process includes:
Stakeholder interviews: Talk to everyone who'll use or be affected by the system. Not just the person who requested it; the people who'll do the work.
Process mapping: Document the current workflow step by step. Where are the bottlenecks? Where do errors happen? What's manual that should be automatic?
User story workshops: Define what each user type needs to do. "As a warehouse manager, I need to see stock levels by location so I can plan transfers."
Wireframes or mockups: Visual representations of key screens. These don't need to be pretty. They need to be clear.
Technical assessment: What systems exist? What are the integration points? Are there data migrations needed?
Priority matrix: Not everything can be in v1. Rank features by business value and implementation complexity.
A typical discovery takes 2-4 weeks and costs between $5,000 and $15,000 depending on complexity. This is the best money you'll spend on the project because it prevents tens of thousands in wasted development.
Writing requirements that work
Good requirements describe what the system should do, not how it should be built. Leave the "how" to the developers.
Bad requirement: "Use a React frontend with a Node.js backend and PostgreSQL database to create a customer portal."
Good requirement: "Customers can log in, view their order history, track current orders, and submit support requests. Orders should sync from our ERP system within 15 minutes of being placed."
Every requirement should have:
User story: Who does what and why
Acceptance criteria: How do we know it's done correctly?
Priority: Must-have, should-have, or nice-to-have
Dependencies: What else needs to be in place for this to work?
Setting budgets and timelines
Realistic budgets come from scope, not from hope. Here are typical ranges for Australian custom software projects: