Is the Craft Still Relevant?
At Cellenza, Software Craftsmanship has always been at the top of our list of priorities. This is evidenced by the many blog posts we’ve published about the subject over the past ten years. So why have a “Craft Month”? Do we have anything left to say on the matter? We think we do. Perhaps because the IT industry, like the fashion industry, is constantly reinventing itself.
In 2011, Marc Andreessen told us that “Software is eating the world.” Twelve years later, we can see that much of what he said was right. You only have to look at the projects we work on daily to see how ubiquitous the notion of “software development” is:
- Infrastructure as code
- Continuous Integration/Continuous Delivery (CI/CD) is managed by code
- Code is used to write or generate documentation
- Automated tests use code
- Even Low Code/No Code is another way of building apps
- Perhaps the best example of this pervasiveness is the hope that ChatGPT elicits around the themes of code generation and analysis and explanation of existing code
- Everything as Code!
So yes, we think the Craft is more relevant than ever. We also believe that the culture of technical excellence (which the Agile Manifesto has been promoting since 2001) and well-made software are at the heart of our business’s challenges and those facing our clients.
Most of Cellenza’s consultants work with code as part of their jobs, and it’s important to us that this code is the best it can be. This is the foundation of the Craft: robust, readable, and tested code. In this post, we won’t get into the principles of SOLID, KISS, and other acronyms associated with all these good practices for writing code.
But Craft Culture is more than just writing clean code. If we look closely, our work involves writing code less than we might think. After all, let’s not forget that our primary job is to solve our clients’ problems. This often involves software because it is everywhere. Knowing how to write high-quality code is necessary to understand these problems and come up with the best solution, but it is not enough.
So, how should we define Craft Culture? We think it stems primarily from our intrinsic desire to excel at what we do, to do excellent work for our clients, providing them with long-lasting value while sharing our expertise and continually improving it.
Put your work twenty times upon the anvil
That’s what I love about being a software engineer: how practices are continually changing, how people share and talk about them, how they get passed on, and this feeling of constant reinvention with certain practices coming back to the forefront but with new technology that makes them even more relevant than before.
Craft Culture is about bringing quality and humanity into this world of silicon!
Craft Principles That Go Beyond Code
The acronyms above (SOLID, KISS, etc.) typically narrow down the debate to a few examples of code seen time and time again. I didn’t realize at first that they had a much broader scope. They can be used for the architecture of an application, a group of applications, the Information System (IS), and even the company itself.
We all know that applying these principles within our code can be challenging, especially at macro level.
The first SOLID principle, the Single Responsibility Principle (SRP), seems to work well in a microservice architecture, but it may be more complicated in a large enterprise IS architecture.
Don’t Repeat Yourself (DRY) is an excellent rule, but if we’re not careful, it can cause us to make too many connections between different parts of our code. We often realize this too late, but it can still be dealt with in our code. Using it in a microservice architecture makes sense, but these connections can cause problems that are harder to manage, mainly when the services are managed by different teams.
Domain-Driven Design (DDD), which is probably the most overused acronym right now, and its strategic patterns can help us apply the Craft in a more macro way while avoiding pitfalls and anti-patterns.
Let’s put ourselves in the shoes of our clients and users so we can iterate and find the best solutions with them!
Craft Culture for the Whole Company?
Let’s make sure the Craft becomes the norm and spreads throughout the company as agility did, even though it started with a manifesto created by developers. This will make everyone’s work more interesting.
Let’s start with IT, where the Everything as Code approach is growing, and the Craft Culture is spreading throughout all areas: Cloud, Infrastructure, Architecture, Data, AI, etc.
To mark Craft Month, we are publishing a series of posts in which our experts will show you how Software Engineers, Cloud Engineers, Data Engineers, and AI Engineers apply the main Craft principles in real life :
- How to Choose the Best Software Architecture with Architectural Drivers?
- How to Build an Infrastructure with Terraform?
- Craft and PowerShell: Why Software Engineering Practices Need to Be Applied to Infrastructure
- PySpark Unit Test Best Practices
- Telemetry: Ensuring Code That Works
- How to Boost Your Apps’ Performance with Asyncio: A Practical Guide for Python Developers