Let's say you have a great idea for an application. You sit down, and write the whole thing out—all the nooks and crannies, the interactions, even down to the payment processor you're going to use. Then you take your idea around to some software developers and say "I want to build this. How much will it cost?"
At this point, your potential developer is in an interesting spot. The truth is, they really can't tell you how much the application is going to cost except in the widest of estimates. At this early stage, there are simply too many unanswered questions, too many wrinkles not yet discovered.
If you insist on an estimate now from a developer for the entire application, there's very little chance that you're going to get something accurate. Instead, you'll likely either get an overly-optimistic bid that sets you up for some ugly surprises later, or you're going to get a bid that tries to allow for the massive number of unknowns and is therefore much larger than you expect.
Damned if you do, damned if you don't. We'd like to suggest a different approach, which leads us to the title of this post. How do you eat an elephant?
One Bite at a Time
Let's rewind to the part where you've got a great idea for a software application, and you've written it all down. Assuming you've got a budget in mind for development (if not, you really should, because it's very important to Talk about Money), instead of asking a developer to estimate the project, we think you should ask them to help you flesh out your idea.
This means requesting proposals from developers that are much smaller in scale. You're looking for someone who can assist in the product development: helping you explore the edge cases of the application, building network diagrams, and even perhaps working on the application's revenue model. The scale of these proposals makes them much easier for you to evaluate, since they're of a much more discrete nature.
This is important work that must be done, but if you do it before asking for an estimate of the full costs, then any developer who looks at your proposal—not just the developer who did this work—will be able to give you a much more honest estimate. And it is important to remember that the developer who helps with this phase does not necessarily have to be the developer who does all the work. It's entirely possible, in fact, that this discovery process will lead the you or the developer to decide they're not the right fit for the project.
While that might be disappointing initially, its completely normal, and it's much better for something like that to happen on a small-scale exploratory project rather than a massive undertaking.
Work like this is why we at 2wāv call ourselves software consultants, not just software developers. We want to be an intrinsic part of the team—helping create a successful application and a long-term relationship—not just building something, getting our check, and going home.
We have decades of experience in software development that we put to work for all of our clients. Please contact us if you'd like to discuss your own software development project!