So the author is basically saying 'we need to improve software development', and trying to use history as an example of 'what we need' in order to improve it.
Back in the day, craftsmen were just people who were so specialized in a trade that they could build amazingly complex and difficult things through example and practice. But it took a long time to learn this craft from another craftsperson, and knowing this one trade so well left them at a loss for other aspects of the thing they built (resulting in things like building collapses).
Modern software developers are the same. Indeed, we're even going through the cultural shift that happens when different civilizations revisit the same things without really looking at how their forebears did it. We're still reinventing the wheel instead of creating a better one, and we're far from creating any new transportation mechanisms.
In order to achieve the kind of evolution from 'craftsman' to 'engineer' that existed for physical architecture, software developers need to learn about things other than software. It's not enough to simply learn how the kernel works, or the hardware works. You have to learn how all those pieces work with other pieces, and the resulting interactions between different natural and non-natural processes with computer systems.
The author gets to those points with his 'essence' of new software engineering. But it gets a bit bogged down by not being generic enough, and not being specific enough. It's simple to see the difference between a craftman's output and an engineer's: the application of scientific principles to achieve an output we can be much more confident in. And that's what 'new software engineering's goal should really be: producing a more reliable, reproducible, safer product.
Are the proposed methodologies going to get us there? I don't think so. I think we need less process, and more science, and to create software which has science as an inherent requirement of its design and implementation, and not merely an afterthought for performance reasons.
Back in the day, craftsmen were just people who were so specialized in a trade that they could build amazingly complex and difficult things through example and practice. But it took a long time to learn this craft from another craftsperson, and knowing this one trade so well left them at a loss for other aspects of the thing they built (resulting in things like building collapses).
Modern software developers are the same. Indeed, we're even going through the cultural shift that happens when different civilizations revisit the same things without really looking at how their forebears did it. We're still reinventing the wheel instead of creating a better one, and we're far from creating any new transportation mechanisms.
In order to achieve the kind of evolution from 'craftsman' to 'engineer' that existed for physical architecture, software developers need to learn about things other than software. It's not enough to simply learn how the kernel works, or the hardware works. You have to learn how all those pieces work with other pieces, and the resulting interactions between different natural and non-natural processes with computer systems.
The author gets to those points with his 'essence' of new software engineering. But it gets a bit bogged down by not being generic enough, and not being specific enough. It's simple to see the difference between a craftman's output and an engineer's: the application of scientific principles to achieve an output we can be much more confident in. And that's what 'new software engineering's goal should really be: producing a more reliable, reproducible, safer product.
Are the proposed methodologies going to get us there? I don't think so. I think we need less process, and more science, and to create software which has science as an inherent requirement of its design and implementation, and not merely an afterthought for performance reasons.