And we’ll never get our product right the next time either.
When we start the development of a product, we have an idea of its features based on our conversations with customers and based on our understanding of the product’s goals for the company. However, customers and companies change over time, so do their goals. Our product should follow those changes.
That’s why iterations and incremental development from agile methodologies are so useful. Companies change. Customers change. Technology changes. Why should we commit to a detailed plan for the long run if we cannot predict all those changes?
Jeff Patton in his article “Donâ€™t know what I want, but I know how to get it” shows two pictures that explain the difference between building incrementally:
and building through iterations:
We should use both incremental development and iterations. Each has its own benefit:
- When using increments we gradually build up functionality so we can release what we’ve incrementally built so far. We release incrementally so that we actually get that business value we’re chasing.
- When using iterations we are looking for the right solution, testing and improving possible candidate solutions.
Jeff Patton says in his article that “using a strategy of only incrementing means you more or less have to get it right the first time” and since companies, customers and technology constantly change, we know we won’t get it right the first time and we won’t get it right next time either.
So, in order to keep up with all those changes, we should think about using agile methodologies and their increments and iterations. We won’t get our product right, but we will get much closer if we develop it one small step at a time and review constantly to check if we are going to the right direction.