Skip to main content
Post Made Community Wiki by Mike Dunlavey
Source Link

The better approach for maintainability from my experience is to have as little code as possible and shove the work to others (i.e. the software vendors) who do the maintenance for you.

I prefer to have as little custom source as possible and push as much as possible to Excel sheets, XML or property files that represent the business data and provide simple readers or use an ETL tool to do the conversion to application code.

I also try to find something that is standard based (i.e. no single vendor) if possible. However, there are some things we cannot avoid e.g. Spring for dependency injection before JEE6 and Hibernate for ORM before JEE5, log4j/commons-logging/slf4j before Java 1.4. By choosing something standard based, there is a higher possibility of switching providers especially if one becomes defunct or prohibitively expensive and you avoid classpath hassles.

Of course if you're the vendor that is providing the software that's another matter. However, if you are dealing with real life situations sometimes it's better to throw money into the problem rather than skill and time.