Many people have a idea for a website or web application, then, after talking to a few developers decide the price is simply too high. Some turn to outsourcing oversees or using an off the shelf solution, both have pros and cons. However, this article is going to talk about having your idea built by someone local, a development shop or contractor. The easiest way to reduce the cost is to reduce the uncertainty and scope for the developer.
“But I don’t know exactly what I want, how will the developers?” Well that’s often why you will get such high and wide ranging estimates, because they know things will change along the way and that you might now know exactly what you want. As a defense developers will often estimate really high and/or create a detailed spec and require each change to be a change order with associated cost. This is where the minimum viable product (MVP) can help.
A Minimum Viable Product has just those features (and no more) that allows the product to be deployed. - Wikipedia
“This is great”, you say, “but I need the whole thing to be completed before I can show customers.” Not true, you only need the very minimum that allows your site to be tested by customers. Take your requirements (wish list) and remove EVERYTHING you can. If you think, “I’m not sure about this”, remove it. Or “I think customers will need X”, remove it. You want only enough to see if your service will solve a problem for your customers. You don’t need fancy image cropping, or detailed interface customization, or tell a friend, or detailed user accounts with permissions. All these extras add cost to development by adding uncertainty and scope to the product or service. In addition, you may very well find your initial idea is not what customers want, but with some minor changes could be. These minor changes get bigger and bigger with each bit of added functionality. Many of these ideas come from the Lean development and Lead startup ideas;
Mary Poppendieck’s Lean Software Development is a good introduction to Lean development ideas for developer and non-developers alike.
Once you have your MVP, or while making it, you should make some Mockups or Wireframes.
A website wireframe (also "web wire frame", "web wireframe", "web wireframing") is a basic visual guide used in interface design to suggest the structure of a website and relationships between its pages. A webpage wireframe is a similar illustration of the layout of fundamental elements in the interface. Typically, wireframes are completed before any artwork is developed. - Wikipedia
These can be created with pencil and paper or with a program like Mockflow, see above image. Either way they will help you verify and refine your MVP and give the developer much more information about what needs to be developed. Mockups should not include design, just simple boxes and words outlining what the user interface (UI) should contain and do. Mockups will often highlight bad assumptions or missing functionality, catching these things now will save time and money later. Getting a designer or user experience (UX) expert to help create wireframes is not a bad idea, but you should tackle the first iterations.
Your main goal before getting any estimates is to reduce the uncertainty and scope the developer will have to estimate for. Doing the above steps will save you a considerable amount of money on development. It will also help you compare apples to apples regarding what is going to be built by different developers. There are many other factors to think about when choosing a developer, but using this technique, you want to make sure the developer makes maintainable code. I’ll post about maintainable code later. But you should make it clear, you don’t want a prototype (read throwaway), rather a solid maintainable code base to build and change as your business starts to grow.