At the end of last year I met my great friend Jorge Abad at an airport. We had a conversation around a very interesting metaphor we have been thinking about for a while, and that is that coders, developers and architects, are actually artisans of digital assets.
Jorge told me about a conversation he had with Daniel Ramírez –programmer and technical lead– about how they were doing things today. Jorge was interested in how much practices had changed from years ago when he used to write code. When his friend explained to him how they manage the layers of the software and how they add information to the databases, Jorge realized that we are still doing a lot of manual work.
In other words, what software coders, developers, and architects are doing is a labor as close to craft as it is to engineering, because the product of their work is literally shaped by their hands: they write it!
Algorithms are not something rigid, they are the sequence of commands that each digital craftsman creates while working. The software is actually a co-creation of these digital artisans with a community of users, stakeholders, and team members. And all of them are influenced by their mood and the environment they are creating in.
For example, some days developers get inspired and solve a problem in two hours and other days when a similar problem takes two days. And there is no bad intention here, it is just that sometimes they do not find how to solve that problem. Suddenly, during the night they wake up with the solution in mind. And it may seem so simple – I was just putting a thread of code in a certain sequence to figure it out.
There is a paradox here: the most fantastic applications you find on your smartphone, the most beautiful portals, what you admire the most are actually digital crafts, born from many people who have created them influenced by their mood and the knowledge they had.
A craftsman is a person who not only creates something out of nothing from materials of their choosing, but also incorporates a part of themselves into what they make. Therefore, the personalities, thoughts, and reasoning of developers are reflected in every app they create. They found a way to translate an idea of an interaction into functionality and a certain behavior into an application.
Manifesto for software craftsmanship
Doing some research on the term “software craftsmanship” I discovered that it has been thought of for many years. In 1999 the book “The Pragmatic Programmer: From Officer to Master” was published. This very interesting book delves into the metaphor of the programmer as a craftsman, studying his evolution as a professional, in a very similar way to how it was done in medieval guilds.
The publication of the Manifesto for Software Craftsmanship (2009) has made this movement continuously grow and evolve, considerably increasing the number of professionals who identify with its principles.
Learning the skills to become a good programmer takes time and experience. Good craftsmanship is synonymous with quality products. A good software craftsman is someone who practices the software craft and always does so with the goal of delivering more value.
Craftsmanship does not conflict with software development and agility. Rather, it nurtures them and serves as a reminder of software development excellence by saying that practice and knowledge must go hand-in-hand for successful, consistent, high-quality delivery of value.
So from here we send our greetings and respects to the digital artists and artisans who make our work and our day to day better!
The cover image was taken from undraw
La cometa de valor