I must be in quite the mood today. I am disagreeing with just about everything I see online. I saw a tweet today for an opening for an agile coach who needed to have C++ in his or her background. Why???
Is the coach going to be developing? I hope not. Testing? I hope not? Let's see. The hiring strategy for an agile coach is that you need someone with great problem solving skills, skills learning your technology and product, the adaptability to fit into your group and the cultural fit to fit with your people.
In a job analysis, I would expect someone with substantial initiative and flexibility. Someone who could take technical leadership, but not always make it look like he or she was the leader. Someone responsible and independent, but responsible to the team. Someone who can work with a team of 3-7 and work individually. Someone who can help the team see what they are doing, without offending the team members.
I would expect the coach to sit with the team members to help them split stories, to help them see how to automate the system tests. I would expect the coach to help the team members learn how to create acceptance criteria. And, if the team members don't already have unit tests, to help the team members write unit tests.
I would expect a coach to know some programming language because otherwise it's too difficult to speak the language of the developers and some of the questions are too code-centric. I would also expect the coach to understand the way testers think about testing and how to automate tests and when not to automate tests, because otherwise it's too difficult to speak the language of the testers. I would also expect the coach to be fluent in potential metrics such as burnup charts, burndown charts and cumulative flow diagrams, and when to use regular agile boards and when to use kanban boards to show bottlenecks better.
I am suspicious when a job opening wants an agile coach to know a specific programming language that they don't want an agile coach. I suspect they want an extra pair of hands. That's okay. Well, it's not, but if the coach knows what he or she is getting into, maybe it's okay. That position is not an agile coach. It's a something else.
Maybe there's a darn good reason for this position to ask for a specific programming language. I'm dubious. Seems like an overconstrained job description to me. But what do I know? I'm just an agile management coach (among other things).