Hey… are you any of you guys out there contemplating going agile? Be warned. Agile doesn’t fix anything. Seriously… if you have problems with your development organization, making the switch to agile WILL NOT fix anything.
Agile will actually do the opposite of fixing things… it will make them more broken. Teams with poor communication will communicate poorly more often. Developers that don’t code well will break the build more often. Defects will be injected more frequently and quality issues will be everywhere.
While waterfall lets these problems hide, agile has them smack you right in the face.
Waterfall teams get a period of quiet because most everything early on is documentware. We don’t actually have to deliver any working software. Even once we start building code, the heat doesn’t really turn up until we are ready to integrate, and that could take months. Not until we hand everything over to QA, and find out the product doesn’t work, does the crap really hit the fan.
We get to pretend nothing is wrong until it is too late to do anything about it.
Agile on the other hand is noisy and chaotic… it will bring all our problems to the surface early. It will seem like agile is causing the problems when it is merely pointing them out. Agile will force our reality upon us in a way that is going to get pretty uncomfortable. As project leaders, development managers, and especially team members… we have to be prepared to do the hard work ahead of us.
The easy part of agile is holding a sprint planning meeting and doing a daily scrum. Writing requirements as user stories is fine, but what happens at the end of our first sprint when none of them are actually done? What about when we get to the end of sprint three and our automated builds are still not working? What happens a few sprints later when QA still can’t test anything?
These might have been some of the same problems that you thought agile was going to fix. Guess what, those problems are still there. The value is not that agile fixes your problems, but that you get to find out about them early… while you still have time to do something about them. It is still up to you to fix them.
So the title of this post… while provocative (sorry about that… two in one month) is true. Agile isn’t going to fix anything. Agile WILL put you in a great position to identity those things that needed to be fixed anyway. Agile doesn’t let anything hide, it forces us to get real about where we are vs. where we want to be. If you want to be successful, your organization will still have to deal with the broken stuff.
Our goal is to build great product… better, faster, and more reliably than our competition. To do that, we have to relentlessly pursue excellence and we must understand the gap between our current reality and where we need to be. While agile isn’t going to fix anything for us, it can provide a way to see that gap and position us to do something about it.