What to gather before you ask anyone to estimate your application: goals, users, data, integrations and the constraints that shape the cost.

Reviewed by the DESSS engineering team
An application development requirements checklist is the short list of facts a company should gather before asking anyone to estimate a software project. You do not need a perfect specification. You need enough clarity on goals, users, data and constraints that two providers would be quoting for the same thing. That preparation also makes any application development consulting conversation far more productive, because time goes to decisions instead of basic discovery. Here is what to prepare, why each item matters and how it affects cost.
Estimates vary wildly when a brief is vague, and that spread tells you less about the vendors than about the uncertainty each one is pricing in. One company assumes a simple login, another assumes single sign-on and an audit trail. Neither is wrong, because nobody said.
Good preparation does not mean writing hundreds of requirements. Detailed specifications written before anyone has tested an idea tend to lock in early guesses. Aim for a clear statement of the problem, a realistic picture of the people and systems involved, and honest notes on what you do not yet know.
Write one or two sentences stating what should be different once the application exists. "Reduce re-keying between sales and the warehouse" gives a team something to design around. "Build a modern portal" does not.
Then add how you will measure it. Fewer order errors, quicker invoicing and fewer support calls about order status all work. A measure also helps you cut scope later, since any feature that does not move it becomes easier to postpone.
List every type of user and what each one needs to accomplish. Include people who only approve things or read reports, as well as administrators who will set up accounts and fix mistakes.
For each role, note roughly how many people there are, where they work and which device they use. A warehouse picker wearing gloves and a controller at a desk need quite different screens, even when they touch the same order. If customers or partners will log in, say so early, because outside users raise the bar on security, support and sometimes licensing.
Sketch the current process, including the spreadsheets, emails and phone calls that hold it together. Workarounds are valuable information. They show where the official process falls short, and they often contain rules nobody has written down.
Pay special attention to exceptions. What happens when an order is partly shipped, an approver is on leave or a customer disputes an invoice? These cases consume a surprising share of development effort, and they are precisely what a simple demo leaves out.
Identify where the data lives today, roughly how much exists, how clean it is and how much needs to move. Bring a small sample if you can. Five minutes with a real export reveals more than an hour of description.
For each system the application must talk to, note the product and version, what data flows in which direction, how current it needs to be and whether an API exists. Find out who controls access as well. A vendor who must approve a connection can hold up a project for reasons entirely beyond your developer's control.
Constraints are not a nuisance. They are some of the most useful information you can provide.
Knowing what moves the number helps you decide where to simplify.
| Item to prepare | Why it matters | Effect on cost |
|---|---|---|
| User roles | Each role adds screens, permissions and tests | Rises with every distinct role |
| Exceptions and rules | Edge cases carry most of the logic | Often the largest hidden factor |
| Integrations | Quality of the other system's API varies a lot | Old or undocumented systems cost much more |
| Data migration | Cleaning and mapping take real effort | Depends on condition more than volume |
| Security and audit | Logging and access reviews add design and testing | Higher for regulated data |
| Devices and offline use | Native apps and sync are extra bodies of work | Offline use adds a notable amount |
| Support after launch | Coverage shapes long-term cost | Ongoing rather than one time |
Sort your wish list into three groups: required for the first release, valuable soon after, and nice to have someday. Be strict with the first group. A useful test asks whether the application would still deliver its main goal without that feature.
A smaller first release used by real people will teach you more than a larger one still under construction. It also gives you a natural point to confirm that your provider works the way you hoped.
Name one person who can make decisions on your side and has time to do so. Identify subject experts who know the awkward cases, plus someone from IT or security. Projects stall most often while waiting for answers, and that cost shows up regardless of how good the developers are.
Use this before you request estimates. Mark unknowns honestly, since a known gap is far better than a confident guess.
Lay the responses side by side and ask what each assumes. Check how they treat testing, data migration, deployment, documentation and training, since those are the items that quietly disappear from low quotes. Ask who will own the code and the accounts too. Our guide to software testing services explains what thorough quality work should include, which is a helpful yardstick here.
No. A clear goal, a list of users, the main process, known integrations and your constraints are enough to start a useful conversation. Detailed specifications are better developed during discovery, when options can be tested. Writing everything in advance may also commit you to early assumptions that a better design would have removed altogether.
Enough that a stranger could explain the problem back to you. For most projects, a few pages plus sample data and screenshots of current tools will do. Describe what must happen and why, then leave room for providers to suggest how. Mark uncertain items clearly, because hidden uncertainty is usually what causes estimates to go wrong.
Each provider makes different assumptions about what the vague parts mean, and those assumptions may be hidden. Differences also come from how testing, migration, documentation and support are treated, along with team location and experience. Ask every provider to list their assumptions and exclusions. Comparing those lists is usually more revealing than comparing the final totals.
Sharing a range generally helps. It lets a good provider suggest what can be achieved for that amount, what to leave for later, or whether a packaged product would serve you better. Without one, you may receive proposals designed for a very different project. A range does not stop you from negotiating or from comparing the options you receive.
Send DESSS what you have so far, however rough it is. We will point out what is missing, what is likely to drive cost and which questions to settle first.