OH: (on twitter)
“Convinced. Everyone that says “agile doesn’t work” or even “agile doesn’t work for us” just doesn’t know what it means to be agile.”
I read this on Twitter over the weekend (12/17/11). It really got me fired up. Mind you, I am an avid agilist. The point is, that some situations are not particularly suited to derive benefit from agile practices.
Some organizations and managers are culturally not aligned to receive benefit from agile practices. They will support some ad hoc pockets of agile practices here and there, but their management culture does not support a few key ideas like (keeping a team together or empowering doers to make decisions), so the agililists eventually learn and leave. The constant team shuffling makes it so hard to continue agile practices that they eventually get trumped by doing what is familiar. Managers that bottleneck every decision, make it hard to get benefit from agile practices.
Some developers are simply not capable of the independence that agile requires. That’s right I said it. Some people are not suited for agile. When you have people who do not like to be accountable, agile practices expose this. When you have people who need to be told “how” to do everything, agile abhors this. Agile practices are best implemented by teams of smart, hard working people. In spite of the fact that this is somewhat inherent in the agile values – people miss this point. The manifesto assumes that we have teams comprised of smart, hard working developers whose brilliance is being held back by management incompetence, and methodology that gets in the way of doing good work. And that was true of all the signers of the manifesto. They are all brilliant people and damned hard working at that. Agile assumes competence, agile assumes a work ethic. Agile done well creates an accountability, not as individuals, but as a team, and a transparency that exposes each of our contributions to the team.
Some customers are not safe for agile practices. Agile practices in customer relations expect that the customer will share some of the project risks with the delivery team. That the team can transparently share what is going on, and the customer will engage and make difficult decisions. These customers want the delivery team to “own” all the risk. They don’t want to be involved actively – they simply want to put requirements in on one end and watch the software come out on the other, and they want to reserve the right to complain if they don’t like what comes out.
I am not saying that one cannot get agile practices in place in these situations, nor am I saying that agile cannot produce some benefits in these situations. What I am saying is that it is way more difficult, and way less beneficial to be agile in these situations, and for the people who are pushing the agile agenda it often feels like a constant fight, like the deck is stacked against you. It can make one tired.
So I sympathize with those who say that agile doesn’t work for us – when they can articulate the people or culture issues that make it difficult to implement, and more difficult to realize benefits from the practices. As for the rest, it is more likely to be folks whose bad behavior, incompetence, and lack of work ethic have been exposed by the accountability and transparency that results from implementing agile practices. It’s not that they don’t “know what it means”, they just don’t want what it means.