I attended a special meeting of the Bay area APLN chapter. David Anderson gave a talk on his recipe for success with Agile. Here are the notes. It was a good talk. I especially liked his description of how he pulled his development teams in to an all hands meeting on his second day on the job to give the teams permission to not write bugs any more. That is great servant leadership.
This reminds me of a similar struggle I had once with an individual on a development team when I was a team lead. The team wanted to try TDD and he was very opposed. He was the technical lead on the team, and we had a good relationship. After trying various techniques, tutorials, pairing with those who knew TDD, an “intervention” meeting with upper management, I realized that it wasn’t the lack of knowledge or clarity around our support for for TDD that was the issue. So in our one on one meeting, I asked him what is holding him back from endorsing this. After a long while of discussion, it came out that he felt that using TDD would slow the team down, and we wouldn’t deliver as much value to the client and might miss the date.
Aha! There was the tyranny of the schedule rearing its ugly head again. I realize that I had put him in a position where he had to both A) be in charge of the technical quality and B) was responsible for hitting a date with a fixed amount of functionality. I was the problem! So, rather than go into argument about why TDD is a good idea (he knew it was, but was under an impossible iron triangle problem) I told him that he was no longer in charge of making us hit the date. He was only in charge of delivering high quality software. I would take care of the delivery problem.
And you know what happened? The team embraced TDD, quality went up and we went faster because we stopped having to track and fix bugs from previous sprints. This all came back when David was discussing his slide on Giving Teams a Permission Slip for Quality.