http://ai2-s2-pdfs.s3.amazonaws.com/5454/5a907a43c798c1193be...
His resulting model of software evolution explains many observations we engineers make about "feature creep," "technical debt," balance of effort between development and maintenance, etc.
I think his model also helps point the way to techniques we can use (e.g., DSLs in preference to OOP) to help improve how we build and maintain software.