I had the great pleasure of interviewing Sandro Mancuso, one of the most prominent representatives of the Software Craftsmanship community.
Sandro is the author of “The Software Craftsman”, one of the most-read books in the field. Besides being a popular author, he is an entrepreneur who co-founded Codurance, a software company that serves clients in the UK and Europe. He is from São Paulo, Brazil and has been living in London for more than two decades. In London he co-founded the Software Craftsmanship community and is a regular speaker at international conferences.
Sandro started the interview by telling the story behind the origination of Software Craftsmanship. He believes that it’s easier for people to understand what is Software Craftmanship is if they first understand the reasons behind its creation. The inception point was the creation of the Agile Manifesto back in 2001, that was meant to be the big umbrella under which different iterative and incremental methods could coexist.
Agile was originally a software methodology, but with time frameworks like Scrum that promoted communication and interaction exploded, making Agile really popular. That was good because it extended Agile’s influence but it was also bad because people forgot about the technical side of Agile. Software Craftsmanship was originated around 2008, as an attempt to recover the importance of the technical practices coming from eXtreme Programming (XP).
Sandro continued explaining that the goal of Software Craftsmanship is to restore the balance between human and technical practices that were somehow forgotten. Software Craftsmanship, then, is a movement created by software developers that values quality and professionalism.
According to Sandro, Software Craftsmanship is not exactly the same as XP. Software Craftsmanship for him is the mindset, the ideology, and the way to see software development as a profession. XP on the other hand is the methodology that encompasses a collection of technical practices.
Sandro made an important observation, that practices are good until practitioners discovers better practices. That implies that even though Software Craftsmanship initially relied on XP, in the future it will continue evolving and probably discover or develop even better technical practices.
Sandro also commented that Agile, Lean, DevOps, and other disciplines have a common goal that is similar to what Software Craftsmanship is seeking but from different perspectives, since Software Craftsmanship is focused on the technical side of things by bringing Agility to software development.
Sandro continued saying that in his view these days Agile is focused on optimizing collaboration among people, Lean is focused on value stream mapping and identifying inefficiencies in process, and DevOps is concerned with improving the processes for putting code into production. All these approaches tend to improve different aspects of the products that are delivered to clients. Consequently he doesn’t believe that practitioners from these disciplines should be fighting, quite the opposite, they should be complementing and collaborating with each other because they all have the same goal.
For Sandro, a good way to summarize the thinking behind Software Craftsmanship is to talk about professionalism. True software professionals will produce well-crafted software that is easy to understand, test, and change, and that keeps adding value to clients. Software professionals create communities of crafters that have the responsibility to disseminate the knowledge that they’ve accumulated by mentoring apprentices. Furthermore, professionalism also implies respecting clients and behaving professionally and responsibly towards them. Professionals need to take ownership of their own careers and constantly learn how to master their crafts.
Sandro mentioned that organizations should not look into solutions like Scrum and XP that are means to an end, but more importantly organizations should look deeper and identify their problems and pains. Identifying problems, technical or not, opens the door to start thinking in solutions.
In closing, Sandro commented that organizations should pay attention to Software Craftsmanship because this can fix underlying quality problems. Low-quality software can seriously limit business agility; again if this was identified as the main problem that the organization has, then Software Craftsmanship could be considered as a solution.