In our lastest webinar, we talked about the craft at scale.
We welcomed Aurélien Rambaux, craftsman coach at ManoMano for 3 years, and Julien Topçu, technical coach at Shodo, a software firm specialized in software craftsmanship and Domain-Driven Design.
Aurélien is the only technical coach for 45 teams, about 300 developers. He works with various teams on the ecosystems he knows, which are Java, Kotlin, and PHP, but also on ecosystems he knows less or not at all, which are React and Go. Julien supports customers on acculturation topics such as craft, DDD, Flow, or Application Security.
Aurélien explained he learned things by himself initially, but then some competent and pedagogical colleagues taught him things very quickly and efficiently. When you make a mistake because you don’t know something, you won’t learn if no one tells you it’s wrong. To answer this question, Julien made a parallel: “Why do top athletes need coaches?”. Coaching aims to bring an outside view on what people do, to help them, not just to give them knowledge. A coach is someone with different abilities whose goal is to help them overcome.
Also, a coach is not necessarily technically better than the person he coaches; the coach of Usain Bolt doesn’t run faster than him, as Julien says. For example, he can use the solution-focus method; by raising the issue, the coach can push the developers to find the answer on their own, while the coach himself doesn’t have it. Also, the coach learns from others by seeing how they do and progress. Developers like external points of view that would not come from their hierarchy.
For Aurelien, who coaches 45 teams at ManoMano alone, the strategy is to focus on people willing to progress. “If I work with receptive teams, it goes much faster. Once we start the machine, it goes pretty well” he says. Developing their interest in a subject they do not know is necessary. Thursday afternoons are free at ManoMano, so everyone can learn, with MOOC or Udemy, for example, or with internal sessions. The first hour of these afternoons is dedicated to speeches. Aurelien does it and tries to talk about various topics for 10 minutes to light the interest.
According to Julien, to bring people to use certain practices, it is necessary to rationalize these practices to their pain; otherwise, they will be bored to do it and will become detractors. It is impossible to scale up a practice. In a company with more than a dozen teams, each team has a different need and faces a different level of complexity of work. And because the team members are different, they have different strengths and skills.
The best way to get people to change their culture is to show that it helps them, which means taking their specific problem in production and helping them solve it. If you want to do something at scale, you must invest in communication and communication dynamics; the problem is the human aspect, the way people talk to each other. It’s challenging and takes time, but you have to accept it. The craft at scale alone doesn’t work; you need business objectives behind it.
“It is by going to each team in their trench that I can help them where they need it most.”, says Aurélien. Developers do not necessarily come to him with problems, partly because they do not know how to formulate them; that’s why he runs two activities with the teams:
“People learn a culture by facing the exterior. If a team is unaware of its problems, it is because they are not shown, which should be the manager’s job. If they’re not aware of their problem, it’s not only them who fail, but the whole organization and not only coaching will solve it.” highlights Julien.
Remember that culture is alive; it adapts to each company and team. Pollination is the most important; the culture must be shared between teams. In general, we can talk about soft pollination, with communities of practices where people will show from time to time what they have done. The problem is that it’s useless: the ROI is very low because people are not involved when it’s not suited to them.
For Julien, a key point is the flexibility to move people from team to team for a while. Crossing people on concrete cases strengthens pollination. Also, the developers will see something else, have new points of view, and learn. Of course, it has to be voluntary; otherwise, it would be counterproductive. Another excellent way to spread culture is to go and see what is being done elsewhere. For example, by attending conferences, meetups, or hosting BBL. You must be curious to see how others are doing, keep an open mind, and know how to question yourself.
Promyze supports this culture of raising the bar, with a solution to share tailored best coding practices. Within Promyze, teams address topics relevant to them: security, accessibility, performance, etc. It welcomes practices specific to each team and for an organization. The tool provides support for continuously discussing and improving teams’ best practices. It takes part in the overall Craft at Scale strategy.
And you, what are your techniques for spreading your technical culture?
Promyze, the collaborative platform dedicated to improve developers’ skills through best practices sharing and definition.
Crafted from Bordeaux, France.