Hal Abelson on Big Design Up Front
In one lecture of Structure and Interpretation of Computer Programs course, a student asked Hal Abelson how the technique of deferred decision making through abstraction he taught relates to the axiom of 'do all your design before any of your code'
.
Given that Big Design Up Front and the Waterfall process were prevalent notions in introductory courses on software development for a long time - to some extent, they were still present in lectures I took during my studies, over two decades after this recording - that was a great question. I just love the answer that Hal Abelson gave:
I bet that's the axiom of someone who hasn't implemented very large computer systems. [...] In general, I think people who really believe that you design everything before you implement it, basically are people who haven't designed very many things.
But what may be a fallacy to most of those who actually write software - Uwe Friedrichsen elaborated on it very clearly in his article The Industrialization of IT fallacy - is still something that I see actively pursued and pushed by a certain type of executives. Of course, it's the 21st century and its a SaFE bet that we are all more or LeSS agile. But if you are looking for today's waterfall - apart from terrible puns on waterfall-like processes in the previous sentence - you often just have to take a look at the org-chart. Those who paid attention to Mel Conway's observations on system design from 1968 know, that organizational design influences the shape of the software that gets build.