Engineering Maintainability:: How to Design for Reliability and Easy Maintenance