Friday, May 23, 2014

The Agile Team Gardener

Often in my career I've been in a Tech Lead role for the project I was working on. Every time, I would go through a period of trying to figure out what that role meant - and it was always a little bit different. I suspect that this was mainly due to my own lack of clarity over what was expected of me. Someone in a position to decide my fate thought I could do whatever it was that a Tech Lead was supposed to do and told me I was the Tech Lead.

Ok. Great. I got this! Maybe.

Over time, I kind of played the role of trying to do what I thought the project needed and not really considering whether what I was doing fit into the scope of what a Tech Lead was. I noticed that a lot of the people at my company put into the Tech Lead role pretty much do the same thing. What that means is that we end up doing what would be considered Team Lead and sometimes Program Manager and Product Owner activities as well.

Classically, come to find out, a Tech Lead was the person in charge of the technical vision, the software architecture, class structures, database mappings, etc. In an Agile environment, these elements should be emergent properties of the project as it is being built. The team, as a whole, should have a shared vision of the software architecture and the tactical details should emerge over time. Other responsibilities of the Tech Lead have been to foster learning among the developers and to ensure that progress is being made. All of these responsibilities should be team responsibilities in an Agile organization.

In my most recent projects as the named Tech Lead I have, instead, tried to be the Team Gardener. There is still the need for experienced members of the team to provide guidance on technical issues, but, more importantly, there needs to be guidance on team expectations, practices (habits), communication patterns, etc. "But wait," you say, "that stuff is the job of the Agile coach or Scrum Master." If you have the luxury of having a coach or Scrum Master, then they should be providing guidance on these issues, but they can't reinforce the moment-to-moment implementation of these practices in a grass-roots manner unless they are also a developer on the team. If that is the case, then your coach should be playing the role of Team Gardener.

The Team Gardener should be planting seeds of ideas, technical or otherwise, and then letting those seeds grow as the team determines. The Team Gardener provides an example by nourishing certain behaviors while discouraging weeds. Most importantly, the Team Gardener understands and is part of the team environment and allows it to express itself in its most positive ways; they can not and do not try to force the team to bend to their will.

Through consistent and gentile encouragement from experienced technical team members playing the role of Team Gardener, a team can grow into a productive, self-managed group.

No comments:

Post a Comment