Why It's Difficult for Agile Teams to Let Go of Waterfall Practices
Agile software development seems to be popular; people are very interested in learning how to do agile and how to do it better. For many projects that have rapidly changing requirements, agile often seems to be the right approach. But teams have a hard time adopting agile practices. It’s far from rare to hear of teams trying to fit practices from their former waterfall method into their new agile process.
This can make it harder for the agile project to succeed, even when people want it to be agile. So, why do people fall back to their waterfall practices?
One obvious reason for not letting go of waterfall practices is habit. Perhaps the reason that the old habits are so hard to break lies in a core difference in the approach of agile and waterfall projects. Agile projects are optimized for delivering the most value; waterfall projects are optimized for a team to minimize risk. This difference connects to some basic ideas about how people are wired.
Managing risk is not a bad thing in general, but as Shankar Vedantam points out: It can be problematic when we pay so much attention to minimizing losses that we miss opportunities to make gains. In a story on NPR, Vedantam explains that humans are wired to avoid losses, and that “the theory of loss aversion will predict that you will fight harder and longer when you’re confronting a loss.”
The rational thing to do is to pay attention to the stakes, but that is not typically what happens. If this psychology plays a role in global politics, it’s not surprising that it also can play a role in the decisions we make when managing projects. We may tend to stick with practices that help us feel like we’re avoiding risk, even when we want to change how we deliver.
In an interview with UC Berkeley neuropsychologist Rick Hanson, we get more insight into why we focus on the negative. The article "How to Build A Happier Brain" discusses why our brains are naturally wired to focus on the negative. One way to step out of this negative-thinking pattern is to create an environment in which we can be less reactive and more responsive. In particular, being able to establish a feeling of safety, satisfaction, and connection can help.
Agile practices, when done correctly, can create an environment that allows everyone on the project to step back and be responsive and reactive. For example, regular retrospectives help the team focus on what can be done to get past problems (which encourages making progress) as opposed to who to blame (which encourages risk-averse behavior). But knowing this is true may not be enough unless you also understand that there may be a deeper drive that keeps people from changing.
Do your agile teams continue to use legacy practices from your old methods? Do they help or hurt your progress?