Skip to main content

Blog entry by Son Dearing

Start with the business problem, not a feature list. Who will use this, how often, and how is the job done today? An estimator who knows what you are trying to achieve can propose a cheaper route to it; someone handed only a list of screens can only price the list as written.

Define what is included as concrete flows: who does what is langchain and rag, and what happens next. Just as important, list what is out of scope. An explicit list of exclusions saves more argument later than almost anything else software development company in usa the document. Indicate as well which items are decided and angular vs vue which are still open — honest teams price those differently, and hiding it only hurts you.

List the constraints. These include systems you must integrate with, the data you have and where it lives, compliance requirements, user volumes, which devices matter and any technology you are committed to. Where a date is genuinely fixed, say what depends on it: a good team is usually able to cut the right scope to protect it, provided they hear about it early.

Define what done means feature by feature. Clear acceptance criteria need not use special syntax: a plain-language note stating the expected behaviour will do. This one section shortens acceptance testing considerably and closes off the usual argument at handover.

Finally, say what you expect back. Require a breakdown by feature or custom software vs saas module, the assumptions behind each number, the risks the team sees and a range rather than a single figure. Treat a wide range as information, not evasion: it tells you where your description is thin. Then tighten that section and ask for a new estimate — the revised figure tends to be the one worth planning around.