Archive for October, 2008

Who plays the role of technical producer on Agile teams?

This past weekend I was watching a television program the process Def Leppard when through in making their Hysteria album. When they were making their first three albums, a critical part of the process was their producer, Mutt Lange. From the show, the band really consider him just another member of the group.

Initially, Mutt was not going to be a part of the album and the result was that Def Leppard were constantly faltering and second guessing themselves. They produced some great bits of music, but they were unable to pull everything together into either a song or an album. In the end, Mutt came back and they produced an album that debuted at number 1 on the charts and eventually sold 16 times Platinum (according to wikipedia).

So what is the point of all this? Well, I have been wondering about the need or role of a “producer” in a software development team. One thing that set Mutt Lange apart was that not only did he understand, capture, and carry the vision of the kind of album Def Leppard wanted to produce, he also pushed the band members to be the best they could and then go a little further.

I personally think every software development team needs someone like this. A team needs a leader who understands the technical aspects of things and is able to look at a snippet of code and see the possibilities and then push, guide, and direct the team to meet those possibilities. A team needs someone who looks at code after every check in and pushes the team to produce the best code possible. A team also needs someone who carries the vision for the software and only allows ideas through that conform to that vision. This ensures that code falling outside of the vision is removed.

Traditionally, I guess this role would be the architect, however, lately, most architects don’t code; they simply produce nice little pictures that don’t mean much. So perhaps this role should fall to the technical lead. My last project, the tech lead definitely fulfilled this role (thanks, Tim). It was a great learning experience. It was not possible to cut corners or leave out a refactoring because I knew my tech lead would spot it and say something. This pushed me to take more time and ensure my code was the best it could be.

I am currently on a project where no one really fulfills this role and I can definitely see a difference. I think the team suffers and the code suffers. The tech leads spend most of their time either in meetings or taking care of fringe problems instead of taking care of their teams and the code they produce.

With all that being said, there is one caveat to this discussion. Def Leppard went through two different producers before Mutt Lange returned. I don’t think just anyone can do the job of “producer” on a technical team. The team needs someone who cares about code quality, who understands and investigates new technologies and ideas, who has real experience to back up what he is thinking, and who has the ability to really bring the best out of people. and maybe that is the problem, there are simply not enough Mutt Langes in the world of software development.