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

Popular posts from this blog

Is Design Dead?

Who needs an architect?