N8han writes about coding as a craft. He mentions that the programmer profession doesn’t command much rapport with the man on the Clapham omnibus, and that the attempts to a) produce programs on a detailed schedule and b) scale this process often wrings all life out of the process.
I think crafting is exactly what’s happening. To me, engineering has always implied a heavy effort carefully designed by men in business casual, and to which the detriment would be collateral damage on a large scale. Bridges and towers are engineered; I can claim comparatively little of my output to be engineered, although it’s sometimes a requirement. On the other end of the scale, artistry doesn’t define it either. Some level of it is involved, but even if artistry didn’t imply going with stochastic personal whims and thus being counter to the nature of a computer program and its use, it’s not the whole picture.
Crafting implies carefully weighing your knowledge and the situation at hand to design, assemble and implement something that’s solid and that works. I think that’s what I do all day; that’s why people pay me or my employer. They don’t pay me to write Subroutine A.