Post

Software Craftsmanship

For all those companies which are in the middle of agile transformation or transformed already.

As software developers, we have another manifesto that raises the bar a little bit higher over Agile Software Development, that is called Software Craftsmanship and signed by same people who wrote Agile manifesto.

We should start from definitions to understand anything so let’s examine Software Craftsmanship word by word.

Craft

A craft is a profession that requires particular skills and knowledge of skilled work. Software Development is our profession so it is our craft.

Craftsmanship

Craftsmanship is our journey and we can define our journey like;

Once an apprentice of a craft had finished her apprenticeship, she would become a journeyman searching for a place to set up her own shop and make a living. After she set up her own shop, she could then call herself a master of her craft.

Manifesto for Software Craftsmanship

Well-Crafted Software

It is about building a culture for passionate, disciplined and motivated people who aims to write well-crafted software and continuously deliver value.

Work done != Well-crafted

Master work == Well-crafted

Work done can seize the day for any startup but if you want to erupt your structure on good foundations then you must master your work in the same time interval you make your work done.

To master your work be responsible of…

  • Design
  • Architecture
  • Quality
  • Testing
  • Security
  • Performance
  • Maintenance
  • Operations
  • Practices

Steadily Adding Value

It is about creating an environment where software development is more predictable, gives better results, costs less and builds trust. Think about the importance of the estimations in SCRUM refinements.

A Community Of Professionals

There must be at least one master in every team. You could be a master after learning from many masters.

You are a master only if you have apprentices. The apprentice is the one who has willingness to learn at all times.

It is not about being a master, be apprentice and become master.

The master sends her apprentice to the other teams like in the medieval Europe. Her apprentice becomes a journeyman to learn the way of the other masters and in the end, the journeyman builds a new team to become a master. And you get a new team filled with the culture of the company.

We cannot pass the field of psychology here, if you think that you are already a master then it is good to keep in mind the Dunning-Kruger effect.

Dunning-Kruger Effect: It is a cognitive bias wherein people of low ability suffer from illusory superiority, mistakenly assessing their cognitive ability as greater than it is.

Productive Partnership

It is about making the users a part of production. If you dont think them as customer who checks your work and pays your salary, you can work with them like your partner. Like in the pair programming; if I do pair programming with one of my team mate than I can easily review her code and she would not feel any awkwardness to be reviewed.

Presentation

I also prepared a presentation and told about this to my colleagues.

Sources

The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt

Software Craftsmanship: The New Imperative by Pete McBreen

Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover

Mastery: The Keys to Success and Long-Term Fulfillment by George Leonard

The Craftsman by Richard Sennett

Photo by fireskystudios.com on Unsplash

This post is licensed under CC BY 4.0 by the author.