Craft Over Art seeks to solve the problem of a craftsman wishing to create something beautiful, elegant, or resume-padding at the expense of the party that commissioned the project. The authors strongly advise that the craftsman deliver a product that is useful, functional, and to specification rather than one that is fancy, inspired, or unique. The craftsman also cannot wait for inspiration, and must deliver a satisfactory product on time. Speed is also not the only concern; the product must have at least a minimum of quality even if it takes a little longer. This is an important concept to introduce to the client as well.
Although I do not fully agree with everything in this pattern, the basic concept speaks to me. There are a lot of things that need to be balanced in a professional product. I have run into this firsthand when developing software for my job; my boss obviously wants a quality product, but also does not want me to spend excessive time on it. I have needed to balance doing things the “right” or “perfect” way with just getting things done. I do think, however, there is still some room in my work for improvement of quality. Reading Clean Code and trying to put those ideas into practice from the start of a project has been helpful, although my current project will still likely need a good refactoring, if the time to do so is in the budget.
I don’t necessarily agree with the way that the authors dismiss the art of programming (and the process of art in general; it’s not just waiting for inspiration to strike), although I understand it’s somewhat beyond the scope of the book they’re writing. I think there is room for the unplayable “million-line game that pushes the frontiers of computer science” — even if the craftsman (or artist, I suppose) that developed it does not benefit directly, the whole field might be inspired or lifted up. I think there is room for programming as an art, room to make decisions inspired partly by aesthetics rather than purely by utility. Maybe that’s only in personal projects that don’t have hard deadlines, but I think there’s space to be found for artistic merit in the professional world as well.
From the blog CS@Worcester – orscsblog by orscsblog and used with permission of the author. All other rights reserved by the author.