Philosophy
Coding is a Craft
The Code Craftsmen believe that great software is not merely the result of well-defined software requirements, sound computing theory, and good engineering practice. The creation of truly great software also requires a clear overarching vision, a sense of aesthetics, a bit of ingenuity and intuition, and a good measure of experience, skill, and patience. In this regard, writing code may be considered more of a craft than an art, a science, or an engineering discipline. The result of this craft should be something that is both useful and beautiful in its design, like a piece of fine furniture, a custom home, a quality hand tool, or a handcrafted guitar.
Tools are Important
If coding is a craft, then programmers must be craftsmen. Although the old saying “it’s a poor craftsman that blames his tools” rings true, others argue that “a workman is only as good as his tools”. The latter statement may be flawed, but there is certainly some truth in it. One does not have to look very hard to notice the value a professional craftsman places on his tools, and how those tools increase his effectiveness. The Code Craftsmen believe that quality software development tools are important, and we are dedicated to building those tools and getting them into the hands of developers.
Programmers are Caretakers
The Code Craftsmen also realize that, with very few exceptions, a computer program is never really finished. A large part of our work is maintaining existing code and adapting it to meet new requirements. Sometimes, with a long-lived code base, it seems as if the program takes on a life of its own. Like a resilient garden plant, it grows and changes in response to its environment. New requirements cause it grow in different directions, causing some parts to blossom and some parts atrophy or decay from disuse. In this context, the programmer plays the role of a caretaker, or gardener, pruning and directing the growth of a code base to keep it healthy, manageable, and beautiful. As code caretakers, we would be well-advised to keep maintainability and adaptability in mind as we make design decisions, especially since code often tends to live on longer than we anticipate.
Beauty Matters
All too often, the source code of a program is regarded as simply a means to an end. While this may be true to a degree, the Code Craftsmen observe that in practice, the design, structure, and readability of source code can have a significant effect on the functionality, reliability, and maintainability of the end product. The source code is like the foundation of a house – the foundation may not be visible to the occupant, but the house cannot stand without it. At the very least, the quality of the source code affects the mindset of the programmer, and a happy programmer who can easily understand and modify a program with powerful tools is an effective one. However, even aside from these practical considerations, the Code Craftsmen would strive to write beautiful code for beauty’s sake, if nothing else. But, of course, beauty is in the mind of the coder…