
Addressing general readers as well as software practitioners, Software and Mind discusses the fallacies of the mechanistic ideology and the degradation of minds caused by these fallacies. Mechanism holds that every aspect of the world can be represented as a simple hierarchical structure of entities. But, while useful in fields like mathematics and manufacturing, this idea is generally worthless, because most aspects of the world are too complex to be reduced to simple structures. Our software-related affairs, in particular, cannot be represented in this fashion. And yet, all programming theories and development systems, and all software applications, attempt to reduce real-world problems to neat hierarchical structures of data, operations, and features. Using Karl Popper's famous principles of demarcation between science and pseudoscience, the book shows that the mechanistic ideology has turned most of our software-related activities into pseudoscientific pursuits. Using mechanism as warrant, the software elites are promoting invalid, even fraudulent, software notions. They force us to depend on generic, inferior systems, instead of allowing us to develop software skills and to create our own systems. Software mechanism emulates the methods of manufacturing, and thereby restricts us to high levels of abstraction and simple, isolated structures.
The author is very passionate about all this - and I think most people would find the intensity off-putting. He manages to fill ~800 pages. I am not sure I agree with everything. While it resonated strongly, I'm also not that bummed out about the ability to launch a website from scratch in 5 minutes. But, in much the same way I feel about the writing of Nassim Taleb, despite having many statements that are incendiary and possibly wrong, it approaches a topic from an angle that you probably haven't been getting elsewhere.
I immediately thought of this book when I read the question because I've never met anyone who has read it or who has any interest in reading it after hearing about it.
This guy is obsessed with hierarchies and taxonomies.
His rant on Software Irresponsibility, starting at page 828, has some good points. He starts out with "Partial or total software failures are such a common spectacle that they are now taken for granted. ... In most cases we know the actual individuals involved in its development, purchase, or installation; but we don’t feel that these individuals must be reprimanded, that they are accountable for their work in the same way that physicians, pilots, or engineers are for theirs. In other professions we have the notions of incompetence, negligence, and malpractice to describe performance levels that fall below expectations. In software-related matters, and particularly in programming activities, these notions do not exist."[1]
He has a point. Compare, say, the NTSB report on an aircraft accident with a DHS US-CERT report on a blatant software security hole. The NTSB will name names and assign blame. Careers can be ended and licenses pulled by those reports, even though the NTSB has no law enforcement power. Now look at a US-CERT report for a company which knowingly and willfully put a default password into millions of products. Was the responsible manager located and identified? Were there sanctions against the company?
A point I've made about security bugs in open source - who put them there? That should be made known, and it should be a significant career setback. Yet the identities of those at fault are seldom mentioned.
[1] http://softwareandmind.com/extracts/Software_and_Mind.pdf