If I had a table of people, I could set a boolean column IsCoach to say whether or not a person is a coach.
I could also just calculate IsCoach based on the data x, y and z.
I think coaching is the latter. When we evaluate what you have done, we know whether or not you are a coach.
Coaching is leading and leading is a pretty dynamic discipline. You need to do whatever it takes to empower the team, to lead them forward, to put them in a position to succeed time and time again. I don’t think it boils down to an easy description. I would say list what you have done and let that speak as your definition of coach. The problems ahead of any given team are going to be totally different than what we might expect, and a good coach finds a solution, regardless of their experience or knowledge up to that point.
That being said, there certainly are must haves. A good coach must establish and ruthlessly encourage:
- Continuous learning;
- Consistent reevaluation of The Process™ - in regards to productivity;
- The customer’s perspective;
- Working out loud and in the open via BVC, whiteboards, etc;
- Product management;
The must also insist upon technical:
- Testability of the code;
- Source control;
- Continuous integration;
- Code reviews;
And so on.
If given a choice, I lean towards Lean in that I would expect to Makers to Make, so I strive to eliminate those tasks which are not core to a maker role.
This question was poised on Pittsburgh’s Agile meetup page, and I answered it there, but I wanted it to live here as well, because I might come back to it.