July 21, 2011

Agile and the Power of Feedback Loops

Last month I came across a great article on Wired Magazine titled "Harnessing the Power of Feedback Loops". It reminded me of the importance of one of the basic tenets of Agile programming methodologies, extremely short feedback loops.
The potential of the feedback loop to affect behavior was explored in the 1960s, most notably in the work of Albert Bandura, a Stanford University psychologist and pioneer in the study of behavior change and motivation. Drawing on several education experiments involving children, Bandura observed that giving individuals a clear goal and a means to evaluate their progress toward that goal greatly increased the likelihood that they would achieve it. He later expanded this notion into the concept of self-efficacy, which holds that the more we believe we can meet a goal, the more likely we will do so.
Many times I've seen 'agility' (as it pertains to software development) defined in terms of implementing certain processes and disciplines, or sometimes the lack of disciplines altogether. If you institute a two-week 'sprint', you must be Agile, right? Got a burndown chart? Agile. Don't like documentation? Skip it, and be more Agile!

That misses the point. The way I see it, the single most important aspect of software development agility is feedback. In a truly agile environment, we see feedback loops everywhere. The point of a short work cycle, whether you call them sprints or iterations, or forego them completely with the continuous pull of kanban, is to keep the feedback coming. Daily stand-up? All about meaningful feedback. Pair programming provides the ultimate real-time collaborative feedback between two programmers. Fast running automated unit tests? Feedback.
Why does putting our own data in front of us somehow compel us to act? In part, it’s that feedback taps into something core to the human experience, even to our biological origins. Like any organism, humans are self-regulating creatures, with a multitude of systems working to achieve homeostasis. Evolution itself, after all, is a feedback loop, albeit one so elongated as to be imperceptible by an individual. Feedback loops are how we learn, whether we call it trial and error or course correction. In so many areas of life, we succeed when we have some sense of where we stand and some evaluation of our progress. Indeed, we tend to crave this sort of information; it’s something we viscerally want to know, good or bad. As Stanford’s Bandura put it, “People are proactive, aspiring organisms.” Feedback taps into those aspirations.
It's important to remember, as we put in place all of these processes and tools and practices and policies to become 'agile', that the point of them all is to provide the feedback that we as humans are hard-wired to respond to. Feedback is the secret sauce of agile.