The Software Crisis

We developed methods of building nested layers of abstractions, hiding information at multiple levels. We took the problem of constructing software and morphed it into towering layers. We integrated these layers into the software required to use our computers, and the software that drives our lives.

From The Software Crisis.


One pivotal distinction between senior and junior engineers is how they manage abstractions, both in building them and understanding them.

After all, “We can solve any problem by introducing an extra level of indirection.” The temptation to solve problem at hand with another wrapper object or adding an if block is irresistible. The abstraction layer could also be a comfort zoom that many may unintentionally trapped themselves in; it is more rewarding for them to build cathedrals in their layers than reaching down and out (yes, this has been a critique of Web engineering and myself in the beginning of my career.)


How would you like to survive in this era of crisis?