2015.05.22
Grady Booch on the Future in Software Engineering
I was privileged to hear Grady Booch deliver a keynote on the Future in Software Engineering. Here are my notes of some important statements and interesting soundbytes.
- Software is an invisible thread, and hardware is the loom on which we weave the fabric of computing.
- Developing software is like making love: there are mechanics involved, but in the end its key element is love.
- (Regarding the use of computers at wartime): Computing is woven on the loom of sorrow.
- The entire history of software engineering is a rise in the levels of abstraction.
- Early structured methodologies were very waterfallish, because the risks of failure were very high.
- Dominant design enables the rise of platforms.
- Key principles of software engineering: Abstractions, separation of concerns, simplicity.
- The core system in the US IRS is written in IBM 360 assembly language.
- Old code never dies: you have to kill it.
- My manager has the illusion of managing me, and I accept the illusion I can be managed.
- Every line of code you write has human and ethical implications, for we are changing the world we live in.
- You can't outsource innovation.
- It's easy to apply agile in small teams, but difficult to teams of teams.
- (Inside a GE MRI scanner): Oh my God I know the people who wrote the software for this! I'm really happy they used UML and formal methods.
- The fundamental premise of science is that the cosmos is understandable; the fundamental premise of our domain is that the cosmos is computable.
Grady continued by offering some important challenges for our field.
- There is no really need for new programming languages, apart from those that nonprogrammers can use.
- What can we do to better assist the work of teams?
- What are the best practices for systems of systems whose components are guaranteed unreliable and untrustworthy?
- What higher-order languages do we need for programming massive neural networks?
- You think debugging is hard now? Wait till you have to deal with systems that learn. How can we debug such systems?
The keynote finished with the following statements and a well-deserved standing ovation.
- Software is the invisible writing that whispers the stories of possibility to our hardware.
- It is a privilege to be software developer, because we change the world.
- It is a responsibility to be software developer, because we change the world.