A new business always starts out with a business plan about the product, the market, financial estimates, projections of sales and lots of other speculations on the future. Planning makes it easier to think through the idea and verify its viability.
The reality of software development is that there are a lot of uncertainties at the initial phase that only become clear later in development. This is very common among software development companies: They launch a fairly good yet unperfected product (a “beta” product) and then they start the iteration/improvement process to clean up the bugs. This continues for a very long time.
In the era of rapid technology evolution, it is not the biggest that survives, but the fastest. The sooner the end product is delivered without considerable defect, the sooner feedback can be received, and incorporated into the next iteration. The shorter the iterations, the better the learning and communication within the team.
At the beginning, the customer provides the needed input. And it is so crucial to get early adopter feedback before you invest huge resources into building what your target audience may not even use.
Speed assures the fulfilling of the customer’s present needs and not what they required yesterday. This gives them the opportunity to delay making up their minds about what they really require until they gain better knowledge. Customers value rapid delivery of a quality product.
Launching beta and using the iteration approach allows startups to get products out to the customer as fast as possible – and to often be the first to market while competitors takes time to perfect in their offices hoping to reach perfection before they offer their software to the world.
Iteration works well not just in software, but in startups too. Getting a cheaper, slimmer version of your product or service out in less time can save you lots of human and financial resources.
Iteration gives you time to respond and improve your next iteration. Changing the way the site works, adjusting business model, adding new features, changing focus etc can all work to your advantage if you iterate well and work on the feedback you receive.