2nd August, 2016
MYOB Development Manager Martin Cronjé shares his thoughts on establishing craftsmanship culture within a developer team.
“We need software developers who are professionals and view their work as a craft!”
This is often heard in development teams as a reaction to fragile systems built on messy codebases.
This statement also often implies a yearning for a certain type of developer – the type who goes home and hacks until the early hours of the morning to pursue their thirst for knowledge.
Historically, companies expected people to develop skills in their own time. Developers would work all day in their day job and then go home to experiment and build their skills in their own time.
The problem with this is that it leads to burnout.
The other problem is that many people have constraints outside their working day, like a family or a second job, that don’t allow them to grow and develop outside the workplace. This leaves both the individual and the team at a disadvantage.
We need to create inclusive working environments. We need to work towards a culture where people from all different life conditions can grow and become better developers and QAs.
Doing this well builds better collaboration. Forging relationships between team members means the quality of their work becomes stronger.
We need to develop our people within their constraints, and we need to do it well.
Creating a craftsmanship culture is about each individual and team having the scope to practice learning.
Mastery is comprehensive knowledge or skill in a particular pursuit. Craftspeople and artists the world over spend their lives repeating activities and refining skills to become masters in their field.
Research shows expert performance is achieved after a period of deliberate effort to improve within a specific skillset.
Gaining mastery over the fundamentals is the hallmark of craft. Great examples of this continuous refinement are an artist like Claude Monet painting the same haystack dozens of times, or a musician practising scales, no matter how accomplished they might be.
Deliberate practice is about doing activities that are specifically designed to improve performance.
Intentional learning activities that we have started to use at MYOB are katas. In the same way a karate student practices a kata, or a prearranged series of basic techniques, a programmer practices exercises to hone their skills through repetition.
We also run coding dojos so that programmers at different levels of expertise can practise problem-solving in an interactive way.
Practising pair- and mob programming means that developers work together and communicate to solve a problem. The magic really starts to happen outside the code. When you put two or more people in front of the same computer, they start talking to each other about the problem, and they learn about each other’s skills and perspective.
We’ve been using deliberate practice since I joined the team in Auckland, and there are plans to use the same methods across other MYOB offices. The feedback so far is that our people are building relationships and learning skills they wouldn’t have otherwise.
At MYOB we’re creating our culture of craftsmanship by continuous learning, deliberate practice and relationship-building.