Commonly used maintenance strategies vary from simple ones such as Corrective Maintenance (CM), which is performed upon system failure, to Preventive Maintenance (PM) where maintenance actions are taken at scheduled time intervals. Both strategies, however, have limitations. Recent advances in sensors, control systems, software engineering, and communication technology have prompted manufacturers to move towards the condition monitoring of system health. Maintenance is performed based on the observed system condition, which is referred to as Condition-Based Maintenance (CBM). This presentation gives a comprehensive introduction to CBM, and introduces a method for CBM scheduling for systems with multiple failure modes. It is observed in some applications that the hazard rate corresponding to each failure mode depends on both time and system state. The system state stochastically degrades, and the degradation rate is often a function of time and the degradation level at that particular time. A maintenance alarm is used to signal when the degradation reaches a threshold value. A new joint model is developed for the stochastically dependent time-to-maintenance due to system degradation and time-to-failure of different failure modes. The model is then utilized to obtain the optimum threshold value that maximizes the system’s availability over its life cycle, or, minimizes the long-run cost per unit time. A illustrative example, using real-life data from a reliability test of communication systems, is provided to demonstrate the application of the approach.