The Importance of Agile Feedback Loops
Several members of the Agile community emphasize the importance of feedback loops in the effectiveness of Agile development processes.
What is a "feedback loop"? Put simply, a process has a feedback loop when the results of running the process are allowed to influence how the process itself works in the future.
What kinds of feedback loops exist in Agile development processes? In their book Kanban and Scrum: Making the Most of Both, Henrik Kniberg and Mattias Skarin describe some of the feedback loops that exist within Scrum and XP. The XP practices they describe that provide feedback loops over shorter time periods are:
- Pair programming
- Unit tests
- Continuous integration
And some Scrum practices that provide feedback loops over longer time periods are:
- Daily Scrums
In all of these cases, however, a key intention behind these feedback loops is facilitating a rapid increase in the future capability of the process. As Kniberg and Skarin put it:
Change something=> Find out how it went => Learn from it => Change something again. Generally speaking you want as short a feedback loop as possible, so you can adapt your process quickly.
A blog post by Rune Sundling states more practices that can support feedback within Agile processes:
- Code reviews
- Static code analysis
- Automated integration tests
- Automated acceptance tests
- Having the customer and business experts work closely with you throughout the process
- Increasing the frequency of releases tenfold (at least to test environments)
Beyond process and productivity improvements, however, tight feedback loops can even make team members feel better at work. According to Lisa Crispin:
If we have a continuous integration process that runs our regression tests on each new version of the code, we know within a few minutes or hours whether new or updated code has broken something. When we know right away, it's easy to fix. Problems don't worry us, because we know we can fix them in a timely manner and move on.
Short feedback loops give us confidence. Confidence leads to enjoyment.