@rrees
Interesting. I've argued for a while that software is an engineering discipline because it uses existing knowledge / science to solve practical problems - which is basically the general definition of engineering. (Even if the view from software development often seems like we're really bad at applying science and existing knowledge - engineering broadly describes what we're trying to archive)
I've met at lot of people who tell my I'm wrong , that software development is an art or craft.
I feel that's false dichotomy, that there's actually a huge cross over between engineering, art and craft.
@rrees
I feel I probably shouldn't comment further till I've at least read some of the book ... but this a subject that rings my bell, so I will anyway.
Software is developed for a huge variety of situations and reasons. Different approaches probably work well for different situations.
To use an analogue with construction sometimes your building a 30 cm retaining wall, sometimes your building a skyscraper. Probably most people could build the garden wall after watching a couple of videos, whereas the skyscraper obviously shouldn't even be attempted unless you have a good qualified team.
In software craft probably works well for the smaller tasks, but for lots of systems more serious engineering is needed.
I think the software industry is generally has difficulty recognizing whether they're building a garden wall or skyscraper and applying the appropriate amount of engineering.
I'm not against the idea of craft, but often feel is used an excuse to do whatever you want (including hours of pointless tool sharpening and chest beating).
Anyway, have ordered copy of book.