Software is a mess.
In the last 40 years I and my colleagues have been writing buggy, unspecified, and difficult to maintain software.
By doing so we have created an entire industry. We have collectively created billions of lines of unmaintainable unspecified code that will require millions of programmers to work for thousands of years to correct the mess we've made.
Where did things go wrong? Can we make things work again? Should we admit we were wrong and throw all our legacy software away and start again?
How can we make correct software, that is easy to understand and maintain?
I don't pretend I can answer these questions - but I have some idea as to what went wrong, so maybe we can learn from our mistakes.
In this lecture I'll talk about some of the biggest mistakes we made and what we can learn from these.