motivation
- Programming projects quickly become unmaintainable as code is added, often by different programmers years apart. Layers of patches on a poor design result in "spaghetti code".
- Code is very hard to understand, because most of it about how to make the computer do some technical thing, rather than dealing with the the original real-world issue.
- The inability of then-current programming languages and methodologies to express real-world issues in code was seen as part of the problem.