Aug 24, 2019

Software is written in a context, in order to solve problems. Over the time, the context is lost, original problems get dissolved (or they don't need solutions, anymore). Original team is not there any longer. New people join, the same old framework (assumptions, etc) is used to solve new problems. That's how complexity grows.

Read Peter Naur's "Programming as theory building" http://pages.cs.wisc.edu/~remzi/Naur.pdf

Aug 18, 2019

Apparently, Peter Naur (the N in BNF) wrote this up nicely back in 1985 in "Programming as Theory Building": http://pages.cs.wisc.edu/~remzi/Naur.pdf