Thursday, November 18, 2010

Agile: Coaching vs. Training

Meet Tom. Tom is your neighbor. His twelve year old knows more about computers than he does. Despite this fact, Tom is the best Coach in the business.

Meet Steve. Steve has worked at six major software shops before he started his consulting company. Steve knows all the ins and outs of TDD, Retrospectives, IPMs, RPMs, Velocity, and fourteen programming languages and their contextual stacks. Steve is well equipped to be a Trainer, but he's no good at coaching.

At this point, you may have a "wha?" face. There's a difference between coaching and training, a picture I intend to paint clearly in the next few paragraphs. Then I'll talk about how Pivots are often both Toms and Steves. Lastly, we'll get in to how the two can interfere with each other.

Coach Tom is the guy who listens to your less tangible challenges. He not the "I need an algorithm..." guy, and notice I said "listens". Tom is important because he recognized that for these types of problems, you, not Tom, is best equipped to solve them. He knows that you have a lot more context around this challenge, you know the boundaries, and you know what your own capabilities are. Tom facilitates by asking very open ended questions that get you to examine the problem with your own eye. Tom respects you as a high functioning, creative, intelligent, adult. If you were not those things, Tom would do his job very differently. Coach Tom in a lot of ways might resemble a [good] psychologist in the way he gets you to self-assess the various qualities of a situation.

You also need Trainer Steve at your company. Trainer Steve is the guy you call in when you aren't the best person to solve your own problems. Steve does a lot more showing and telling, and a lot less listening than Tom. Steve has expertise that you or your organization does not possess. Steve knows frameworks and implementations. Steve's experience, not yours, is why you brought in a Trainer. Steve should feel like a teacher in the way he imparts his specialized skills unto your group.

Pivots, of Pivotal Labs fame, in almost all cases, are both Tom and Steve at once. A Pivot is a developer first, he has a wealth of knowledge about your platform coming in to the project. He also has a bank of experience about what works well and what doesn't when it comes to running a project. A Pivot can train you how to make your product awesome if you ask him to.

Pivots are also great coaches. We pair nearly 100% of the time, which means that at least one of us is listening half the time. Pivots understand that while we have a lot of technical and process knowledge, you have the domain knowledge, and that you are the best person to solve challenges in that problem spaces. Over time, we get really good at asking questions that lead you to the answers - almost like a modern day Socratic method. Most of which isn't even a conscience effort. I suspect the same drive that makes us want to learn and understand new programming languages or frameworks, and the rewards that has, also shows itself as a desire to understand our clients because we intrinsically know that our output will be better if we can take the time to listen.

Pivots, despite their ability to span this Coach-Trainer domain, are still just mere mortals, and we get frustrated at times. It probably strikes hardest when we want to train, but a client has asked to be trained, and maybe hasn't even acknowledged the gap that the training would fill. Maybe some of the features are in a document, and the bugs are in Bugzilla, and there's a list of stuff "we should do eventually" in the corner of a white board in one of the conference rooms.  As a Pivot my instincts would scream at me to get you on Tracker, our award-winning software that helps you keep all your product-related work in one place and gives you the added bonus of velocity to help you predict when things will be finished. For you, the current system works. You haven't felt the pain, so you have no interest in change. As a Pivot, I want to spare you from that pain, but I can't.

You have to feel it. Then you have to want the coaching, where someone will listen to you, and ask you open ended questions that bring you to the realization that "Hey, I have no idea when this set of features will be complete", or "Mike in Boston can't see what's written on the white board, but he'd be great for knocking off a lot of those tasks". "But what's the right solution? I've only every used Excel to make lists." Now you are ready for the training because you've identified a problem, and a lack of expertise.

You can see now that there are two clear roles, a Trainer, and a Coach. The diference between the two is who has the expertise to solve the problem. In the case of the Trainer, the trainer has the expertise. In the case of the Coach, you the coachee has the expertise. Pivots, because of the nature of our business, are capable of being both Trainer and Coach. It is this duality that sometimes causes us to pull our hair out, but is ultimately responsible for your sustained success.