Matthew's Blog

Previous Posts

Craftsmanship in Software

There is some debate in the industry about whether software development is an art form. That will be a discussion for another entry. However, I have noticed that every "Great Artist" was first a master craftsman.

Software is like any other creative endeavor. There is medium for expression, there are tools, and there are techniques. What sets a craftsman apart from an amateur is not the medium or the tools. Those can be purchased with a big enough budget. A craftsman knows the proper techniques to use, and when to use them. He has also practised those techniques so that they are used correctly.

This takes a desire to do the best job possible EVERY time. As new techniques are learned, they have to be practiced and implemented- this takes time and effort. Sometimes this is seen by non-craftsmen as "slowing" the project, but developers with experience know that the better the design and the implementation, the lower the overall cost will be to everyone.

Being a "craftsman" is an attitude, an approach to your project. It is a dedication to doing the job RIGHT- doing what it takes to put the thought into the design, getting the proper tools for the project, and carefully implementing the design. Someone with a craftsman's perspective comments their code thoroughly. They make sure that indexes are properly bounded. They make sure variable names are descriptive. In short, all "i's" are dotted, and all "t's" are crossed- because any other way to develop software would not even occur to them.

This is what you need to look for in a software developer. If they make excuses for the way their software is built, then you need to pass them by.