I recently read O’Reilly Building Maintainable Software (Java Edition). It provides good insight as to what to look for to create maintainability in enterpise software systems.
10 suggestions the book provides:
- Write shorter units
- Write simpler units (measured in Cyclomatic Complexity)
- Write code once only
- Keep interfaces very small
- Seperate code in to modules
- Couple modules loosely
- Keep modules evenly sized
- Keep codebase small (and look for ways to right-size)
- Automate development pipeline and your tests
- Write clean code and refactor as you go
Overall I thought the book was very well laid out, easy to read and easy to understand. I’d recommend it to anyone new to software development, but most of the tips contained within the book should be very familiar to the seasoned developer.