… just some thoughts about developers and their customers at different stages of the development process.
When was the last time you broke apart your beautiful object model, started executing hard-coded SQL from MS-DOS batch-file Scheduled Tasks, added 24 extra options to your previously minimalist UI, scrapped a third of the unit tests because the spec changed and you don’t have time to re-write them, ran the web server as root, and used System.Reflection to access private members of your Business Logic classes from the UI layer?
Code rusts fast.