Potentially, software quality can be improved significantly by constructing systems that are self-managing. Such systems monitor both their internal state and operating environment during execution, and respond, as necessary, to any significant changes or problems detected. This chapter considers the role of robustness in the design and operation of self-managing systems. Robustness is discussed in relation to other general requirements of ideal systems and a basic design pattern developed. The resulting model includes a two-level user interface for communication with self-managing systems, which is illustrated with word processing and Web browser examples.