#8 Cut up the cake
Have you also been in a project where you afterwards said stuff like "yeah, we should have done it in smaller pieces" or "I don't understand the system anymore"?
Software systems are like tigers, they start all cuddly and sweet but suddenly you have a 1000 pound man-eater in your office. And once you lose control over the beast it takes lots of effort to regain it.
The bigger the system the harder to control, but somehow, even though we all know about the importance of using modules when coding, it is easy that the system gets to big to understand.
Modularized code is almost as old as programming itself, but to use it you need to think before you start coding and you need to continue thinking while you add new functionality.
Common sense, right?