Monday, May 5, 2008

If you can't handle Waterfall... Agile isn't going to fix it

There's a disturbing trend in the software development community. That is adopting an Agile methodology to 'save' projects and teams that fail to do Waterfall.

In my opinion, Waterfall is a wasteful and boring way to develop software. With that said, it works in the sense that it's been the best thing going for software development for a number of years. It is far from perfect, but it isn't really the determining factor for whether a project fails or succeeds to deliver.

The people and how they work within a team, are the most important factor. A good team can get the job done no matter what process is in place. It doesn't matter, because you have a group of people who work well together.

Teams that don't work well together are not going to succeed in delivering high quality software. Apathy, incompetence, laziness, complacency, lack of communication, lack of cooperation, and personality conflicts are just some of the traits of a dysfunctional team. Lack of responsible leadership is common among all of them. How can someone say that they are responsible for a team and say that they are doing their job if the team is dysfunctional. If the team is dysfunctional and the leader is responsible, then something is going to change. Please don't make that change adopting an agile methodology yet.

Agile is not a cure all for dysfunctional teams. It's not some magical turnkey set of practices that turn poor developers into good developers. It isn't going to turn a group of people who can't stand each other into a happy team. It is a way of making a good team better.
Ask yourself this question before you roll out the new methodology. Is your team following the process now? Will changing the process increase the likelihood that they will follow the new process?

Instead, I recommend that the persons responsible for the dysfunctional group buck up and deal with the real issues at hand by being responsible. If a team is failing, you are failing as their manager. Righting that ship will not be easy. Tough conversations and tough actions will be in order. Be fair and be clear. Set a level of expectation and follow through with those who meet that level, and those who fail. Your team will not respect your leadership if you don't follow through.

Until the team is operating in a healthy and disciplined way it is not time to think about new methodologies. It will be a waste of time. Worse, there will be a very convenient scapegoat when the team fails.

No comments: