TDD & Agile &

I never bought into the ‘agile will save us all’ philosophy that permeates the True Believers. It’s not because I don’t believe them — I do. Operating according to the agile manifesto is a step up. It’s a big step up. Scrum provides a framework for operating with agility, and I’ve been a part of organizations that were successful and had adopted Scrum. I don’t believe they were successful because they adopted scrum, but I believe their culture allowed them to adopt scrum, and scrum helped them fix some of the blindspots in their culture. I refuse to use the term synergy out of principle (unironically), but they do feed off each other. Culture and scrum that is. I’m not sure how synergy and irony interact, but anyway.

One of the reasons I distrust the ‘agile will save us all’ philosophy is because it has to cross a giant chasm: People and Power. Particularly the command-and-control management that exists in a lot of shops. Embracing agile means pushing decisions down to the people on the team. Embracing scrum means codifying that and ensuring the team is cross-functional, self-organized, and is empowered to change everything in its purview (including whether or not they adopt scrum, which is itself, wild).

In development shops and internal IT projects, the budget and the deadline drive everything. When your budget and deadline driven, agile isn’t a good fit (if you aren’t deadline driven, it works, and if you aren’t budget driven, it works; but put both of those together and it becomes difficult to adjust), because normally projects have relatively fixed scopes. Iron Triangle? we don’t need no stinking iron triangle.

Anyway, I’ve done it again, so I’ll come back to the point: If your organization hasn’t truly embraced the tenets of agile and operates with self-organizing, cross-functional, fully empowered teams, then it’s probably because the culture isn’t ready yet. That’s too bad, because operating in tight feedback loops with constant input is a great way to develop software.

You want to know another system that gives you tight feedback loops and constant input that you’re building the right thing, but doesn’t require you changing your organization’s culture?

Test Driven Development.

You can’t control what the VP does. You can’t control the culture’s inability to start with the transparency needed to make scrum a success, but if you’re the manager of a development team or a director of software development, you can effect what your developers learn and how they develop software, and TDD is a pretty good step in the right direction of better software, faster.

I’m using the lessons I’ve learned over the years in real world projects to teach how to use TDD to deliver .NET software projects faster and better. If you’re interested in receiving updates about the course, including when it’s about to drop, sign up at As a special bonus for signing up, you’ll receive a subscriber’s only discount you won’t get anywhere else.

Leave a Reply