Mark has two excellent posts discussing his thoughts on NeoVictorian Computing. His central premise is: The Arts & Crafts movement failed in consumer goods, but it could succeed in software.
While Mark and I might quibble over a few particulars of his argument, I most emphatically agree with the points he’s making. When I hire new developers, I express a philosophy to them very similar to what Mark is discussing. I view developers as craftspeople, and I strive to create an environment conducive to writing software as a craft, rather than code monkey drudgery.
Right now Mark is laying out the basis for his argument, and it’s a good one. I don’t know if he’s going to wax prescriptive in future posts and talk about the specifics of how he thinks NeoVictorian Computing should work (I hope he does), but I’m going to riff off of his posts and present a series of posts about how we’re doing software development where I work. I’m very interested to see how what we’re doing intersects with Mark’s thinking.
Mark defines NeoVictorian Computing systems as:
- Built for people
- Built by people
- Crafted in workshops
- Irregular
- Inspired
I agree with all of these. In fact, our shop is configured (admittedly somewhat unconsciously) around these principles. We aren’t a shop designed to build and maintain the sort of large enterprise software Mark discusses - we could never compete with the money and resources a McKesson or SAP or Oracle bring to the table, and aren’t particularly interested in doing so. Rather, our typical project is designed to meet the needs of one to maybe a dozen people. These are people who have a unique problem that no off-the-shelf software handles well. Solving that problem requires the assistance someone who has a deep understanding of the environment the eventual users of the software exist within and how to craft a piece of software that works within that environment.
I’m drawn to Mark’s NeoVictorian, Arts and Crafts movement analogy because of a personal affinity for these periods and movements. Even stripping away the analogy, though, he’s making a powerful point - Henry Ford might have figured out a great way to make inexpensive cars, but the factory isn’t the best environment for the far more creative work of writing software. Development is craft work.