What is iterative coding?
In the context of coding, an iteration is a development phase that produces a working artifact. In other words, at the end of each iteration we have a working piece of software, which can be used and tested, even if it has not all project features yet. The whole point of it is, customers should be able to use and test what’s already been coded.
If used wisely, this approach lead to many advantages.
1) It forces us to define our next coding target according to customer features (i.e. value) instead of technological features. This is where user stories come in; we love to define our specifications by user stories. All code and tech challenges are only means to get to an end.
2) It allows us to get early feedback from the customers. They can get a working and usable piece of software at the end of each iteration and they can immediately point out if something is not working as expected. In software development these adjustment requests will happen and it is better if they come up early.
3) It results in a more reliable project. By aiming each time for a working software and getting early feedback, we will have to fix issues and refactor before the project grows big. At the start of each new iteration, we can trust the quality of what has been done until now and proceed more confidently to add new features.
“When to use iterative development? You should use iterative development only on projects that you want to succeed.” – Martin Fowler