Why Craftsmanship Matters
Craftsmanship has been around for ages, but why does it matter in software engineering?
This is a guest post written by Yennick Trevels, a fellow software craftsman.
As customers we like beautiful products, quality products that can last for years, products we don't have to worry about and which just work. These products typically come with a higher cost attached to them, but we're willing to pay for it because the product or service makes our life easier or more colourful. But sometimes we get tempted into buying the cheaper product, or going with the cheaper contractor. When we do, it typically already starts with the ordering process that isn't giving us the advice that we actually need, but we decide to order anyway. Time goes by, and we haven't received an update on the ordering status, so we decide to call them. Turns out they forgot to send the product but promise they will send it immediately. The day of delivery is finally there and we open the package. The result is pretty lifeless, grey, but does the job...until it starts to break down after a month of use. It's then when we ask ourselves why we didn't go for the product or service that clearly was better in terms of quality, made by a craftsman but more expensive.
Clearly being a craftsman is important, but it requires a long-term consistent investment. So why should you start investing in it early to reap the benefits later, and what are these benefits exactly?
What is craftsmanship
Craftsmanship, the art of efficiently making beautiful and high quality products. It has been around for thousands of years. Used by all kinds of professions to differentiate themselves from their competitors, for their love of the craft, to reach customers that enjoy well-crafted products and to find a market where price isn't the only determining factor.
It starts with learning to use the right tools for the job and knowing how to select these tools. Truly understanding what makes a great tool and even knowing how to create the necessary tooling. Without a good set of tools, it is hard to be efficient and to deliver that consistent quality. Learning to craft a quality product, to iterate on it and harden it. To research new concepts that give you insights into how to craft even better products, concepts which will last for a long time. But being a craftsman doesn't stop at the technical level, it's also about being an efficient communicator and planner. Knowing how to gather requirements, how to plan the work and communicate progress.
Craftsmanship is a never-ending effort to improve one's craft.
It differentiates you
Software engineering is a highly sought after profession, but still a competitive one. If you just look at the gruelling interview processes some companies employ, you better stand out from the crowd. But how do you stand out? Craftsmen of old practiced their craft in a public area, for all to see how they start from a raw material and end up with a product that is tuned to perfection. People would notice, would be convinced of the quality and be glad to pay a premium. Word of mouth would spread quickly, providing a solid stream of work for the craftsman.
As software engineers we can do the same, by sharing our knowledge and building software in the open. It's our way of displaying our skills, our craftsmanship, to the world. When you build valuable software and share knowledge, word about your work will spread more easily (via Twitter, in companies, in communities, ...). It all works towards creating trust, without people actually having worked with you. It makes you the easier choice over someone else.
While working in the open certainly helps to differentiate you, it's the private work that also slowly but steadily builds your reputation. When working on projects you will quickly notice those developers who are underperforming, and those that have clearly invested in their craft and stand out from the crowd. It's the last category of developers who will generate a positive word of mouth. When people move on to other companies and that company is looking to hire more people, their names will come up. Don't underestimate the number of people you work with over the years and how this can quickly snowball in building a positive name in the industry. When others are willing to vouch for you, it's probably the most effective way to dodge those gruelling interview rounds.
It makes you reliable
As a customer, the last thing you want to do is having to micro-manage your contractor. Double-checking the quality they deliver, following-up with their progress, or even having to tell them how to do their job. You paid them (good) money to solve a problem of yours, so that you don't have to worry about it. This is where your qualities as a craftsman come in, which make you a reliable partner to work with. Customers can expect solid advice, a quality product and clear communication. You become the go-to worry-free solution for customers who value their time and are willing to pay for it.
It builds your network
Guilds have always been a place where craftsman gather, share their knowledge and help each other. In our field of software engineering we come together in user groups and meetups, both online and offline. Consistently being involved in and contributing to those groups will build a relationship with the other members, it builds trust. If you then also display proficiency in your craft and willingness to help others, they will also gladly send work your way.
It makes you of higher value
When you don't consistently invest in your craft, you won't have anything to compete on except price. This makes you a low-margin commodity. A craftsman on the other hand has a unique set of skills or products for sale, which makes price less of a factor. As a craftsman it's easier to build a loyal and returning customer base, because they won't simply compare you on price. The consistent output of quality results also makes it so that price increases won't make your customers switch to the competition as easily, because that has now become a high-risk action (do they really want to risk worse results for a slight price increase?!). And yes, you can sell a turd with good marketing and make a lot of money, but it's much easier to market and sell the qualities of a well-crafted product or service.
In-depth articles on how to improve one's craftsmanship can be easily seen as "something fluffy that developers waste time on" when you don't look at the bigger picture. But those small gems of knowledge keep adding up and when applied consistently are part of making you a craftsman. They not only feed our inner geek, but have a long-lasting impact on our career as a software developer.
That's it for today! ✨
About Yennick Trevels
Yennick has been practicing and applying his craft as a software developer for over 15 years in various roles (junior-senior software engineer, consultant, technical team lead, self-employed developer) for various companies (startups, enterprise companies, government). He's now sharing his knowledge on building a career in software engineering on digitalbuff.dev.
Hello everyone! I'm Sébastien Dubois. I'm an author, founder, and CTO. I write books and articles about software development & IT, personal knowledge management, personal organization, and productivity. I also craft lovely digital products 🚀
If you've enjoyed this article and want to read more like this, then become a subscriber, check out my Obsidian Starter Kit, the PKM Library and my collection of books about software development 🔥.
You can follow me on Twitter 🐦
If you want to discuss, then don't hesitate to join the Personal Knowledge Management community or the Software Crafters community.