Condition-based maintenance (CBM) has been extensively studied. However, the majority of existing CBM research either consider a periodic inspection schedule or a fixed preventive maintenance threshold. While policies with periodic inspections and/or fixed maintenance threshold are easy to implement in practice, they may incur more-than-necessary inspections and induce more failures. In this paper, we develop a sequential CBM policy for systems subject to stochastic degradation. The aim of the proposed policy is to prevent or delay failures and perform maintenance activities just in time. Unlike conventional preventive maintenance that often fixes the inspection interval and the preventive maintenance threshold, both the next inspection time and the corresponding maintenance threshold in this paper are dynamically determined based on the current state of the system. The proposed sequential predictive maintenance policy is particularly important and applicable for general non-homogeneous degradation processes. The proposed model enables optimal scheduling of inspection and preventive maintenance decisions, in order to minimize the long-run maintenance cost rate including inspection, preventive and corrective maintenance costs. The performance of the proposed predictive maintenance policy is evaluated using a simulation-based optimization approach. Frequency of system failures and total maintenance cost rates are computed and compared with a bench mark maintenance policy, a periodic inspection/replacement policy. Our results show that there can be potential savings from the proposed predictive maintenance policy.