Recently, my blog was found by a search engine using the search term ‘scrum master coding ability‘. I think, somebody asked here for the programming skills of a Scrum Master. This makes me feel urged to a short reply.
So, should a Scrum Master be a skilled programmer? In my eyes: Definitely yes!
Why? Well, I think, that is quite obvious. One aspect of the the Scrum Master role is his responsibility for the team. The Scrum Master has to improve the team. There are a lot of facets of what can be improved, one of these are programming skills for sure. Improving the programming skills lead to better code, to clean code in best case. If a Scrum Master finds his team (or a part of it) needing some help in that area, he has to coach it. First, this requires that a Scrum Master is able to recognise this. And second, the Scrum Master must be able to demonstrate to the team better techniques, best practices, and so on. (This is not meant as a prescript for the team. It is more a hint how things may go better. Still, the team can decide in what way it wants to work.) Therefore, to fulfil this part of his role, the Scrum Master must own programming skills!
By the way: Meanwhile, it should be clear what my understanding of a skilled programmer (or better: skilled developer) is. It is not only the knowledge of one or more programming languages, frameworks, and development environments. It is rather the things, that CCD comprises, behaviour/test driven development, domain driven design, design patterns/principles, just to name a few… I think, both sorts of skill are requirements for a skilled programmer which make him a skilled developer then.