At its heart, software development is a hypothesis testing process. Based on your team’s experience and their understanding of the market, you believe a certain set of features will achieve your organization’s goals. You can build out that set and release it, hoping it will be successful. Or, over the course of development, you can get usable software in the hands of people who can provide you with an assessment based on their real-world experience. Instead of waiting months or even years to learn whether or not you’ve built the right thing, you’ll get a steady stream of feedback over the course of development. This iterative approach allows you to adapt to new information in shorter cycles.
Iterative development does not necessarily make a software product ready faster (though it can), but it does greatly improve getting to the right product/feature set and user experience earlier in the process. This ability to adjust before everything is baked in makes it both more cost-efficient and more likely that you will build that right thing. For those of you keeping score, that’s a two-fer.
Continuous learning plays an outsized role in this process. Simply executing short cycles does not a success make. This requires a dynamic product planning process with high engagement from all stakeholders, including marketing, support, and executives. Each has different needs and contributions to make and must be part of the process. Marketing and customer success have timelines that likely need to start weeks before a public release. Being part of the process will allow stakeholders to voice their priorities, provide direct feedback, and be part of decisions that are made that may require adjustment to plans
Following such an iterative approach provides some real upsides:
- New opportunities: Because of your agility and the iterative process, you can rapidly take advantage of opportunities rather than having to wait for the next release, by which time it may no longer be an opportunity.
- You always have working software: Because you’re making regular releases, stakeholders can try out incremental production releases and provide feedback early. This is much better than building up to a single large release with no ability to see running changes in the interim.
- Bad ideas won’t sink the ship: Another benefit is quickly realizing when an idea is just not panning out. Correct your course before marching off a cliff.
This ability to adjust as you go will make it more likely that the software you deliver will meet the real needs of your target audience and achieve your organization’s goals.