Software processes must be properly designed according to various project characteristics, past experiences, and improvement initiatives in order to ensure the quality of software products. Because various types of knowledge are required for designing software processes, many parts of the designs depend on the knowledge of experts and manual activities. Consequently, design processes can be time-consuming and error prone. To overcome this problem, this paper proposes a mechanism that supports the customization of software processes. Since integration of various types of knowledge is required in the customization process, the proposed approach uses a hybrid method combining CBR (Case Based Reasoning) and knowledge-based technique. CBR is used to facilitate re-use of past experiences; knowledge-based technique is used to derive process components using knowledge-based inferencing and to resolve conflicts that may occur during customization. To support the two approaches in a seamless manner, an organizational process library (PL) is designed which defines and shares various types of process knowledge and reusable objects throughout the whole customization procedure. An illustrative example is presented to show how the hybrid approach can be used to design actual software processes.