In my life of software engineer and now as a leader I meet only a few software craftsman. This people are exceptional they understand that the work of crafting a software have nothing to do with only making a software. Unfortunately only few computer software school teach our new generation to become crafter instead maker.
On my every day job, I interview a lot of young software developer. But very little are our future software craftsmanship. One simple question about the reasons they become a software developer tell you everything.
It is not their fault, it’s the fault to who teach them to be an Engineer. I may have been a lucky one. Some of my teachers where passionate and they give us that virus to always look for the best. Be proud of what we build. We are not just making a software, we craft a software this is a huge difference. If you look at the definition of each:
- Make: form (something) by putting parts together.
- Craft: an activity involving skill in making things
You don’t need to do a lot of study to make a software, we ask you just to put together piece of software. Someone else with a lot of expertise already make the piece for you.
Last century, it was the way we where working. An architect, a senior developer was making the components and we at the implement phase, we where assembling this component together. It was the most boring job. I never stayed long time on such environment.
21th Century Agile Development come and everything changed, we where asked to think from A to Z in our software, not only on one phases.
Unfortunately most of the school continues to teach in the last century way. And only some of us learn themselves to craft software. We learn by reading books, by watching coding video, resolving problems, go beyond what we where asked to do. Most of us we become speakers at events.
In 2009 we even created a manifesto of Craftsmanship.
A software craftsmanship will not hide himself behind false excuses, to make well crafted software. We will use TDD practices, we will do simple stupid code, we will proactively review the code of our peer, we will use Continuous Integration, we will focus on excellence to be proud of our software as any craftsmanship.
Now it’s also our job to promote this good practices to everyone