I need a technical ally when introducing Specification by Example and BDD. Actually I need a technical ally when introducing automated testing of any kind. Somebody to coach / mentor / encourage / explain / enthuse about the technology and how it helps.
Coach for automated testing
For most teams automated testing, at least automated acceptance testing, is radically new. I believe you need a coach to introduce radically new practices. There are Five Qualities of a Great Coach:
- You have been a good player!
- You continue to LOVE the game…
- You LOVE helping other people play better…
- You have the COURAGE to play BIG in the world.
- You are a force in the world for good.
In the context of automated testing that means, the coach has been, and preferably still is, a good developer with practical experience of TDD and BDD. This ability and experience gives them credibility with the team.
The coach must also LOVE automated testing as an integral part of coding. This is about passion. And passion is infectious.
Of course the coach must LOVE helping others code better. But the coach must also “challenge people when they are not living up to their own standards – sometimes you have to be TOUGH!”
The coach has to challenge their own comfort zone and similarly help the developers play BIG. Introducing a new practice is challenging and the coach has to help people overcome those challenges.
Finally, the coach has to be seen to be trying to make the developer’s world a better place.
Tech Lead as coach
The Tech Lead is often a good choice as the coach for automated testing. There is a good chance they have all the qualities of a good coach, otherwise they wouldn’t be in the position they are in.
But what if they don’t have much experience with automated testing, or automated acceptance testing? The Tech Lead has to at least buy into this approach. If they are saying “no way”, even quietly, then the initiative won’t succeed. They have to be willing to learn and encourage.
Senior developer as coach
If the Tech Lead can’t lead on automated testing then the next place to look are the senior developers. Unless the developers respect the coach they won’t listen to what they have to say.
An external coach can help
I’m keen on using external coaches and in the automated testing space Matt Wynne is my top pick. But not even somebody of the quality of Matt can change a team from the outside.
I’ll use an external coach to educate, reinforce, and high light new directions. But there has to be an inside guy to help the team change every day.
It isn’t the PM
I’m a Agile Programme Manager so I’m comfortable in the world of Lean-Agile, programmes and projects. That means I’m the right guy to champion practices that are useful for programme management or project management.
As far as PMs go I’m am technical. I can read Ruby, C#, Java, PHP, HTML, CSS, etc, etc, but I’m not the guy to lift the hood on a system and make code changes. I’m not a techy by developer standards. That severely undermines my ability to champion technical practices like BDD. I lack the credibility to influence the developers. And because I’m not “in” the code I can’t see whether or not the practices are being adopted effectively – that requires someone properly technical. So I look for an ally in the technical team.
This post is part of a series on Specification by Example.