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.

Thursday, January 23, 2014

All I Really Need to Know About Agile, I Learned In Kindergarten

I recently listened to Episode 32 of This Agile Life podcast. This episode had special guest Karen Favazza Spencer (@agilekinder) who talked about a kindergarten classroom as a metaphor for what a development team's space should feel like. This reminded me of one of my favorite essays by Robert Fulghum entitled, "All I Really Need to Know, I Learned In Kindergarten."  So here is my version of this classic poem adapted for an Agile audience:

All I Really Need to Know About Agile, I Learned In Kindergarten

Most of what I really need
To know about agile development
And what to work on and how to code
I learned in kindergarten.
Agile wisdom was not at the top
Of the Scrum mountain,
But there in the sandpile at Sunday school.

These are the things I learned:

Share everything.
Ask questions.
Don't yell at people.
Gather in a circle to talk.
Clean up after every task.
Don't be afraid to say what you think.
When doing anything important, always have a buddy.
Wash your hands after you use the restroom.
Really tough problems are good for you.
Live a balanced life -
Learn some and think some
And draw and color and talk
And play and work everyday some.
Don’t tell a story that’s too long,
your friends will lose interest.
When you go out into the world,
Be proud of what you’ve done,
And thank the people that helped you.
Today will be better than yesterday.