I feel like you are missing the point of this post (or maybe I am?)
I think the point IS that you want things to be predictable and maintainable, so quit writing code that is supposed to be clever more than it gets the job done in a tidy and direct way.
Yeah, but then talking about craftsmanship is not a productive way to get there. Indicative of craft production is that things are unique, unpredictable, take a lot of time, cost a lot, require specialised maintenance, depend on the specific skills of the workers available at the time, and so on. Planning is virtually absent and things happen when the craftspeople think that sounds like a fun challenge for the day.
This is in contrast to e.g. mass production where humans are reduced to replaceable cogs and everything is build from meticulous blueprints by a separate department and planning happens in a waterfall-style way.
Which is in contrast to lean production where small cross-functional teams work on end-to-end stuff from the beginning of the project in quick iterations and with tight feedback cycles.
Yeah, I went back and read it again. What the OP advocates is actually not what I think of when I hear "craft" but actually closer to applied software engineering principles. Or rather: craft at the lower level, creating clean code line by line and software engineering at the higher level, creating something maintainable.
Comments
I feel like you are missing the point of this post (or maybe I am?)
I think the point IS that you want things to be predictable and maintainable, so quit writing code that is supposed to be clever more than it gets the job done in a tidy and direct way.
Yeah, but then talking about craftsmanship is not a productive way to get there. Indicative of craft production is that things are unique, unpredictable, take a lot of time, cost a lot, require specialised maintenance, depend on the specific skills of the workers available at the time, and so on. Planning is virtually absent and things happen when the craftspeople think that sounds like a fun challenge for the day.
This is in contrast to e.g. mass production where humans are reduced to replaceable cogs and everything is build from meticulous blueprints by a separate department and planning happens in a waterfall-style way.
Which is in contrast to lean production where small cross-functional teams work on end-to-end stuff from the beginning of the project in quick iterations and with tight feedback cycles.
Yeah, I went back and read it again. What the OP advocates is actually not what I think of when I hear "craft" but actually closer to applied software engineering principles. Or rather: craft at the lower level, creating clean code line by line and software engineering at the higher level, creating something maintainable.