The cost of coding software is only a small percentage of its total cost. In fact, a software has a life cycle, and once this cycle has been developed, comes:
- Corrective maintenance
- Scalable maintenance
- Monitoring / operating in production
Thus, the cost of developing a software would represent only 25 to 35% of its total cost.
To reduce the cost of software, it is essential to focus on reducing its maintenance. This is why, we recommends investing in quality continuous injections in the software we develop.
Injecting quality with "Software craftsmanship"?
In recent years, we have witnessed the advent of Agile in companies, which allows us to deliver the right products to customers by significantly reducing feedback loops.
Image already added
Image already added
But what about the quality of the deliverables?
The Agile Manifesto does not mention anything about it. With frameworks like Scrum, we have long focused on delivering more value to our customers. We created new roles in companies (Scrum Master or Product Owner), we improved our process incrementally ...
But what about the software engineers and the quality they are supposed to guarantee?
Something got lost on the way by focusing on methods, frameworks and processes.
We ended up forgetting that in the end the people who create and deliver the software had to be put in the middle of the equation. And quality must be their primary responsibility.
As explained in the article "Gamification: Boost your craft culture", Software craftsmanship" is summarised in one word: professionalism.
If software development can be considered as an art, what are the characteristics of these artists / craftsmen?
As shown on this iceberg, the craftsmen are people who are passionated by what they do, what they create and about the main importance of their mission: develop well-crafted software.
The implementation of engineering practices
Continuous learning, to keep up to date and always question what is learned
Mentoring, to share their knowledge and skills with their peers and to create other craftsmen
Professionalism, working both from a product point of view and from a technical point of view
This professionalism translates into the use of practices, mostly from the eXtreme Programming (XP) method, such as Test Driven Development, Pair Programming, Refactoring, Continuous Integration, etc. These allow to create software of high quality and participate to groom the pride of the teams which develop them.
In summary, a craftsman is a "super developer" who codes to build a functional, maintainable and scalable product. these craftsmen are the ones who will really allow to deliver software of high quality.
How to have software craftsman in my company?
There are 2 possibilities: to emerge or recruit.
How to make them reach their full potential?
To promote their emergence, it is essential to trust your developers and your engineers. It is necessary to cultivate an environment in which people will be able to share and thus initiate a culture of learning and continuous sharing.
If you already have this kind of developer, at home, that communicate with passion, cultivate them!
Craftsmanship is passing through in the corporate's culture.
This sharing can result in the setting up of exchange sessions such as: Book clubs, Brown bag lunches, Lightning talks, communities of practice.
What about Craftsmanship in Luxembourg?
At Agile Partner, we believe deeply in Craftsmanship. Associated with Agile, this is what allows us to deliver quality to our customers.
Since always, we delivered training sessions about Agile, Scrum, Kanban and more. However, a session dedicated to those who produce and who are at the heart of our industry was missing. That's why we have created the Software craftsmanship training, with a mix of theory and practice to pass on the mindset and described in this article to our clients.
At Agile Partner, the goal is to make every developer proud of the work they do and to be considered a true professional rather than just a performer.
We have created the "A Software Craftsman Journey" course in an attempt to answer to one simple question "What information did we want to know when we started developing in our company?"
Pictet Technologies (PTL), a company we have been working with since 2017, experienced our Agile and Software Craftsmanship trainings.
"We spent time with the super- developers during five training sessions, and the exchanges that resulted from it were very rewarding, both for them and for us. What is interesting with PTL is that the level of developers is very high. We wondered about the reasons of these sessions "
Adrien and Yoan, Agile Coaches and Software Craftsmen at Agile Partner.
The question was asked to Vincent Eggen (Managing Director) and Ricardo Coutinho (Senior Manager), who explained that for them the primary goal of this training was to align everyone on the meaning of the term developer in an agile world; and to make the business even better at learning.
This answer shows the mindset that Agile Partner wishes to meet in discussions about Agility and Craftsmanship: a continuous questioning about what we know and an insatiable desire to discover what we know do not know yet.
Do you want to get started with software craftsmanship? We are here to help you with coaching, training and our software quality improvement workshops!
To know more about the subject
We advise all developers to read "The Software Craftsman" by Sandro Mancuso's , THE bestseller on the subject.
Our craft tools (made in agilepartner)
Agility and craft have been at the heart of our society since its creation. So, over time, we have created many tools (serious games, resources) that allow us to support our accompany.