Software Craftsmanship
As the
definition for craftsman says it is “a person who is skilled in a particular
craft”. People tend to think of other professions when someone mentions
craftmanship, maybe an artisan, but very rarely they think about a software
programmer.
So, it’s
fair to say that writing code is a very particular craft that needs highly
skilled people. You also need a particular training and a particular set of
tools to do it. But even in writing code, there are certain levels of quality,
which make the real difference between well-made software and crappy software.
As Bob
Martin said on the podcast, back in 2009, lots of systems are in a state of disrepair,
and in my opinion, lots of the current systems within companies and
organizations are in the same state. Some systems were developed years ago,
modified through the years making it harder and harder to maintain. It’s true
that sometimes programmers don´t even want to change a module because the system
can fail, and when that happens sometimes control version systems are not being
implemented, which makes it difficult to roll back when necessary.
So, Martin
recommends to be disciplined when writing code, to do test and development,
with high degrees of test coverage, as he says, “test at all expenses”.
Also, try to leave no mess behind with your code, and make it as good and clean
as possible.
So, is all
of this achievable? Can programmers really forget about the scheduled delivery
date and just focus on the quality of the software? I think it can be done, but
as Martin said, it will take a lot of commitment from the teams and companies
behind those programmers, to make it possible. The paradox is that sometimes
they forget that when doing better software, delivery times should get shorter
in the future, becoming easier to add value on each delivery.
Comments
Post a Comment