

Common:
- Procedural, preferably Functional. If you need a procedure or function use a procedure or function.
- Object Oriented. If you need an object use an object.
- Modular
- Package/Collection of Modules
- Do not optimize unless you need to.
- Readable is more important then compact.
- Somone said minimal code coupling, Yes! Try to have code complexity increase closer to N then N factorial where N is code size.
Frankly everything else is specialized though not unuseful.
Use an alternative ROM. That is what I do now.