The coding coach
The Funnel tech organization is divided into three tribes. Most teams in the Domains tribe are supported by a coding coach, a senior developer responsible for providing a psychologically safe and fun environment for new developers to grow.
First and foremost, the coding coach is a developer, as the role name suggests, and strives to teach what it actually means to work in a self-organizing team here at Funnel. These responsibilities are combined with openness and vulnerability, which help create a psychologically safe environment. At times a team will undoubtedly face mountains that seem tough to climb; in these moments, the coding coach remains optimistic and supports the team in finding solutions and ways forward. When it is needed, the coding coach helps represent the team to stakeholders and, by doing this, inspires courage so that all team members can do this themselves as well. Lastly, which is also essential for the team’s dynamic, the coding coach celebrates success with the team; promotes and joins in on fun activities.
Tech Many new developers are enthusiastic, eager to learn, and want to solve customer problems. Funnel appreciates their energy, and it is the responsibility of the coding coach to take a bird’s eye view. The teams need to write code that they will want to support in the future. They also need to learn from experiments, failures, and successes. We want to move fast today and tomorrow. So promoting code health is an integral part of the job. The coding coach should be a role model by writing maintainable code, creating readable pull requests, etc. The coach will adhere to Funnel’s cultural values and the developer requirements by combining sound coding habits with a friendly attitude. By combining sound coding habits with a friendly attitude, the coach will adhere to Funnel’s cultural values and the developer requirements.
The Funnel tech organization values continuous learning and has taken several steps to ensure that it is not lost in everyday work. Every four weeks, developers spend an afternoon learning more about anything tech-related they are interested in. Most developers must continuously expand their skill set to build and improve the product.
The coding coach supports the team in learning more about programming and the relevant parts of the Funnel architecture. Certain concepts, such as test-driven development (TDD) and mob programming, are central, but not all new hires are familiar with them. As all coding coaches are different, they have their own toolbox for teaching. People value different things, and that is ok. The coding coach should always strive to expand their toolbox. There are several ways in which a learning session can be arranged. It could be that the coach holds a workshop with the team or guides them in the mob. The team can also invite someone from the outside. As the coding coach should always strive to make themselves redundant, the five-star approach is to ask and support a team member to hold the workshop.
The coding coach also has direct relations with the individual team members and works with the Deputy CTO (line manager) to help team members thrive. This is a tight collaboration where the coding coach sees more to the team’s best, and the Deputy CTO works more in the individual’s interest. Both help team members to grow, learn and see when they need new challenges and encourage movement to other teams when needed. Onboarding new team members is important. Here the coach will be a key player in making the transition as smooth as possible.
The dual responsibility with the line manager comes with its challenges. There is a gray area here regarding setting expectations for the team members. Coding coach is not a formal leadership position. Their toolbox includes sound advice coming from a more experienced and wise colleague. Their primary focus is also on the team. The coding coach can help team members in the day to day work, and should not hesitate to involve the Deputy CTO if a team member needs more support and guidance.
So what are some of the challenges with this role?
Many senior developers focus on the delivery of software. In this role, it is vital to understand that enabling others to deliver software is the main task, not doing it oneself. Letting go of the deploy reflex is likely one of the hardest things for a new person in the role.
Another challenge is to get everyone on board. The team members will have different skill levels. The least skilled must get the opportunity to learn, and the more experienced members need more challenging work. The team can split into groups and explicitly work on different levels in different sessions.
The term coding coach is the best we have found, but “coach” gives people different expectations that may or may not apply. There may be a better word for this role, and if you know it, please let us know!
A perhaps easy way to see these things is to say that the primary goal of a coding coach is to make themselves redundant. We want all developers to be able to act as coaches and take on these tasks naturally when needed.