No one factor has contributed to the failure of more software projects than the phrase, “just give me a ballpark estimate.”
It’s not a case of bad intentions. Well-intentioned clients think they’re asking for something simple, and they think they can take a nice round number back to their team, easily get approval, and worry about the details later. “Oh, this is simple, two kids could build it in a weekend.” But they aren’t developers themselves, so they don’t fully understand what it takes to build what they’ve dreamed up.
The software team just wants to please a potential client. So they guess, and then pray that the final project doesn’t slip wildly out of scope.
Those details you’ll “worry about later” are actually critical inputs to determine an accurate cost estimate. Without them, ballpark figures are based on hope and nothing more.
Think about it this way: if I want you to build me a house and I say, it’s just a two bedroom house. It’s really simple. Everyone knows what a two bedroom house looks like. I don’t want to worry about the kitchen or what the windows look like.
Yes, that sounds straightforward, but how many bathrooms will your house need? Do you want it to be made out of brick? Or maybe you’re picturing a stone house, or one made from concrete or stucco. There are dozens of details you need to fill in before any architect or contractor can give you an accurate estimate of cost. Plus, failing to nail down those details up front means you might end up with a house that doesn’t look anything like the one you pictured in your head, or it might be ten times the cost you budgeted.
Software development requires similar inputs up front. The reality is even ‘simple’ apps often require hundreds or thousands of hours to develop. Successful projects require careful planning and precise architecture. Without that, you inevitably face costly surprises down the road.
This also starts your relationship out on the wrong foot. A good software developer should be your partner, and your relationship should be founded on mutual trust. If there is a shared understanding of your goals, needs, and constraints, they can make recommendations that will improve the end product and save you time or money. Similarly, it helps when your dev partner trusts you. They will be more likely to bring you ideas, better solutions, and proactively communicate issues. And they’ll put their best work into your app.
The solution is to first work toward the scope of the app, then build the app itself. At Shrine Development, we accomplish this through a paid engagement (typically $6k – $10k) we call the Discovery phase.
Some firms do free work pre-sale, and for large projects there can be a Request-For-Proposal (RFP) process where multiple estimates can be compared. We’ve found the Discovery phase to be most successful because it ensures both partners are committed to the outcomes and invested in producing the best possible work.
I openly share Shrine Development’s process, so if you are interested shoot me a DM and I can send it along.