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.