Before we had the light-weight agile type of development approaches there were two modes of thinking about how software should be built.

The light-weight approach (agile before it was called “agile”) worked well for projects that enjoyed a low cost of change, and solved partially defined problems with informally specified goals.

The other perspective was more aligned with “Scientific Management” which worked best for projects that suffered a high cost of change and solved very well-defined problems with extremely specific goals.

There was some discussion about these different approaches. But somewhat unintentionally the “Scientific Management” approach became the common perspective amongst software development teams. Sometimes this was the right approach, and other times not really.

https://en.wikipedia.org/wiki/Scientific_management