Invest in the abstraction, not the implementation. Abstractions can survive the barrage of changes from different implementations and new technologies”
—Andy Hunt and Dave Thomas1
Structured design has its genesis in Edsger Dijkstra's famous 1968 letter to the Communications of the ACM, “Go To Statement Considered Harmful.” Dijkstra's paper concludes with
The go to statement as it stands is just too primitive; it is too much an invitation to make a mess of one's program. One can regard and appreciate the clauses considered (ed. if-then-else, switch, while-do, and do-while) as bridling its use. I do not claim that the clauses mentioned are exhaustive in the sense that they will satisfy ...