Within the Scrum framework, there is no definition of the role and responsibilities of the Scrum Master needing to know how to code. As a matter of fact, the Scrum Master Responsibilities and role does not need any knowledge of coding. The Scrum framework treats the scrum master role as a person with scrum certification course and hence an ace coach of Scrum values.
While without actual authority, the person in this role leads by example and infuses the team through the servant-leader example. So powerful is the effect of the Scrum Master role that the role is also known and called as Agile Manager or Coach, Iterative Coach or Manager and Team Coach.
Scrum Master(SM) abilities
The crucial abilities required to fulfill the role of a Scrum Master role are the orientation of team members, people-skills and diagnostic thinking. No technical skills, testing or coding knowledge is a prerequisite to such functioning. Yes, if by inclination the Scrum Master does possess such skills and technical knowledge it could be put to use intelligently and within the Scrum Framework.
To lead by example on the servant-master foundational principles of Scrum practices the SM needs to be an ace communicator able to transition from the business to technical aspects without hindrances. It needs pluck and exceptional diagnostic skills to be able to wear many hats, diagnose inter-team and interpersonal issues. More, it needs excellence in people management to be perceptive, empathetic and rein into the Scrum Framework diverse team members and clients.
Often the role of a coach involves cushioning and refereeing team-members communications. When should one be flexible, what are the non-variables, what will the impact of changeability lead to, what trade-offs will result and how will it impact productivity are normal issues dealt with within the Scrum framework. An effective SM ensures the removal of obstacles, distractions, disruptions and miscommunications allowing the team members to perfectly coordinate, communicate and collaborate.
Ex-programmers are rarely inclined to be effective Scrum Masters because of their default values leaning to be technically critical and less aware of business skills and acumen. Just as all business graduates do not become successful entrepreneurs, so also with programmers donning the role of a Scrum Master.
Team members with exposure to Project Management, Program Management, and Product Management with dynamic people skills and a high level of perception and communication skills are better suited for the responsibilities and role of an SM. They could be fine-tuned in an agile business analysis course
Small DevTeams of less than five members who are all speaking coding would need a degree of familiarity with coding. Ideally, even such teams need an Agile Coach because of the additional responsibilities of being the Scrum Master are akin to traveling with your feet on two boats. Not only will there be confusion in the Scrum roles, but the clarity of roles envisaged in the Scrum Framework also fails.
In such an environment it would be wonderful to have an SM who understands coding speak to the DevTeam, reiterate understanding of the issues flagged, translate in non-technical plain speak to the product owner, business teams, and so on. That’s a creative use of coding knowledge at its best.
In parting, the Scrum Master will need managemental skills more than technical skills to function effectively in an Agile environment using Scrum practices to foster team communication and collaboration for achieving a common goal of productivity increase.