Mary Shaw talks about the history of engineering and how it applies to software.
I came across this talk by Mary Shaw in a comment by xjay on Hacker News. She is a researcher on software architecture at Carnegie Mellon University. In it she first describes the history of civil engineering. She then compares it to the history and current state of software engineering. The talk is Progress Toward an Engineering Discipline of Software by Mary Shaw.
Seeing the history of civil engineering was interesting. She used the example of bridges. It started with a long period of trial and error. After some major catastrophes like bridge collapses successful bridges were analyzed. That resulted in best practices and design guidelines. These were tested and confirmed using scientific methods. This proven knowledge then became part of university curricula and became part of the knowledge transfer. And today there is software that can design bridges for you.
The history of computer science is very similar. It is enlightening to have this pointed out. It puts the current state of the industry in perspective.
I think this explains the prevalent feeling of constant re-invention. When an idea does not follow the process and becomes part of the knowledge transfer then it will be re-invented at some point. It’s like the quote “Those who don’t know history are doomed to repeat it”. That is why I liked seeing some history in her talk.