Designing for Reliability and Maintainability