Code Reuse
- One of the most common ways to reduce cost
- This usually takes additional effort
Extensibility
- Change is the only constant thing in a programmer’s life
- You should always build code with extensibility in mind as, no doubt, changes will be requested