Writing software is knowledge work. The quality of the codebase, infrastructure and team interactions affects both the profit and the well-being of the team. My favourite way to share knowledge is called Samman Technical Coaching. It is described more in detail on this website and in the book by Emily Bache. It can be used to improve both code quality, infrastructure (as code) and team interactions.
In short Samman coaching consists of two parts, a learning hour and working in an ensemble. The learning hour is interactive and tailored to the needs of each team. It is a way to explore new skills and concepts in a safe and well prepared setting.
The ensemble working is done in production code and is coach facilitated. I have several posts on working in ensemble and its benefits
I claim that this is far more powerful than it initially seems, at least when done right. I want to compare it to regular courses, since I think they are the closest alternative.
With your people
Samman technical coaching is done with your team. No more returning from a course and trying to convince the others of the value in what you learned. It is also adjusted to the knowledge level of your team and facilitates learning and teaching within the team. Samman technical coaching provides new knowledge, a learning culture and tools for learning together.
Where you know the domain
Learning how to deal with complex problems is hard. You need a complex problem to solve, understand that complex problem and still have cognitive capacity left to learn a new tool or method to solve it. When working with problems found in your production code, you already understand the domain. That leaves more room for learning the tools, without having to use an unrealistic and limited problem. (The coach needs to know the material well enough to teach it in any codebase.) This brings more confidence in the tools and skills, since the team can see that they can be applied in their reality. (If the tools do not work in the current production code the coach will have to adapt the plan for the learning hours. That feedback is not possible with traditional courses.)
Solving your problems
Happy families are all alike; every unhappy family is unhappy in its own way.
– Leo Tolstoy in Anna Karenina
The goal is code that is dependable and easy to change. How to get there is different for each team. As a Samman technical coach you listen to the team and read their code. The goal is to provide as much value as possible in a digestible way. All topics are presented one hour at the time, often in small steps. That way new concepts have a chance to get repeated and to stick. As it is directly tried in the production code (it does not have to be producing value, but it can) the team can try things out at their own pace. This creates an offer of knowledge that can then be pulled into everyday use. Change is best done without fear. Samman coaching provides the specific tools that your team needs for change, but in a way that is safe and fun.
Samman technical coaching brings the team together. By using familiar production code it can teach more complex topics. As the content is tailored to the needs of the team, and proven useful to them in their codebase, it sticks and provides value in the everyday work for a long time.
Comment on the blog!
Create a comment by emailing me.
I will then add the comment to the post.