What is Software Craftsmanship? | Agile Partner Luxembourg
share on

The Software Craftsman

Improve the quality of your software development by using Software Craftsmanship.

By Adrien Muller and Yoan Thirion, Agile Coaches and Software Craftsmen at Agile Partner. 

software craftsmanship

The cost of coding software is only a small percentage of its total cost. In fact, a software has a life cycle, and once this cycle has been developed, comes:

  • Corrective maintenance
  • Scalable maintenance
  • Monitoring / operating in production

Thus, the cost of developing a software would represent only 25 to 35% of its total cost.

To reduce the cost of software, it is essential to focus on reducing its maintenance. This is why, we recommends investing in quality continuous injections in the software we develop.

Injecting quality with "Software craftsmanship"?

In recent years, we have witnessed the advent of Agile in companies, which allows us to deliver the right products to customers by significantly reducing feedback loops.

But what about the quality of the deliverables?

The Agile Manifesto does not mention anything about it. With frameworks like Scrum, we have long focused on delivering more value to our customers. We created new roles in companies (Scrum Master or Product Owner), we improved our process incrementally ...

But what about the software engineers and the quality they are supposed to guarantee?

Something got lost on the way by focusing on methods, frameworks and processes.

We ended up forgetting that in the end the people who create and deliver the software had to be put in the middle of the equation. And quality must be their primary responsibility.

 

For this reason in 2008 Robert C. Martin created the "Manifeste for the Software Craftsmanship".

software craftsmanship manifesto

As explained in the article "Gamification: Boost your craft culture", Software craftsmanship" is summarised in one word: professionalism.

If software development can be considered as an art, what are the characteristics of these artists / craftsmen?

As shown on this iceberg, the craftsmen are people who are passionated by what they do, what they create and about the main importance of their mission: develop well-crafted software.

software craftsmanship iceberg

This includes:

The implementation of engineering practices

Continuous learning, to keep up to date and always question what is learned

Mentoring, to share their knowledge and skills with their peers and to create other craftsmen

Professionalism, working both from a product point of view and from a technical point of view

This professionalism translates into the use of practices, mostly from the eXtreme Programming (XP) method, such as Test Driven Development, Pair Programming, Refactoring, Continuous Integration, etc. These allow to create software of high quality and participate to groom the pride of the teams which develop them.

software craftsmanship practices

In summary, a craftsman is a "super developer" who codes to build a functional, maintainable and scalable product. these craftsmen are the ones who will really allow to deliver software of high quality.

How to have software craftsman in my company?

There are 2 possibilities: to emerge or recruit.

How to make them reach their full potential?

To promote their emergence, it is essential to trust your developers and your engineers. It is necessary to cultivate an environment in which people will be able to share and thus initiate a culture of learning and continuous sharing.

If you already have this kind of developer, at home, that communicate with passion, cultivate them!

Craftsmanship is passing through in the corporate's culture.

This sharing can result in the setting up of exchange sessions such as: Book clubs, Brown bag lunches, Lightning talks, communities of practice.

software craftsmanship continuous learning

What about Craftsmanship in Luxembourg?

At Agile Partner, we believe deeply in Craftsmanship. Associated with Agile, this is what allows us to deliver quality to our customers.

Since always, we delivered training sessions about Agile, Scrum, Kanban and more. However, a session dedicated to those who produce and who are at the heart of our industry was missing. That's why we have created the Software craftsmanship training, with a mix of theory and practice to pass on the mindset and described in this article to our clients.

At Agile Partner, the goal is to make every developer proud of the work they do and to be considered a true professional rather than just a performer.

We have created the "A Software Craftsman Journey" course in an attempt to answer to one simple question "What information did we want to know when we started developing in our company?"

Pictet Technologies (PTL), a company we have been working with since 2017, experienced our Agile and Software Craftsmanship trainings.

"We spent time with the super- developers during five training sessions, and the exchanges that resulted from it were very rewarding, both for them and for us. What is interesting with PTL is that the level of developers is very high. We wondered about the reasons of these sessions "

Adrien and Yoan, Agile Coaches and Software Craftsmen at Agile Partner.

The question was asked to Vincent Eggen (Managing Director) and Ricardo Coutinho (Senior Manager), who explained that for them the primary goal of this training was to align everyone on the meaning of the term developer in an agile world; and to make the business even better at learning.

This answer shows the mindset that Agile Partner wishes to meet in discussions about Agility and Craftsmanship: a continuous questioning about what we know and an insatiable desire to discover what we know do not know yet.

Do you want to get started with software craftsmanship? We are here to help you with coaching, training and our software quality improvement workshops!

the software craftsman

To know more about the subject

We advise all developers to read "The Software Craftsman" by Sandro Mancuso's , THE bestseller on the subject.

share on