A number of great sins have been committed under the guise of making software more maintainable. And 60% of software cost is during maintainance, according to Robert Glass. So what goal could be more laudable to pursue?
The only problem is that we call things maintainable which are not. Putting remote interfaces in your application is done to “make it more maintainable”, creating frameworks is done to “make it more maintainable”, using EJBs is done to “make it more maintainable”. Yet all of these moves will make your system less maintainable. How do I know? Because I measure my maintainability. We push out a new snapshot version of our system in 10 minutes, a release in an hour. We push out new version to a simulated production environment every two weeks. And when I threw out frameworks, remote interfaces, application servers and EJBs, my cycle time went down.