Rapid innovation, intense competition, and the drive to survive have compelled information technology (IT) firms to seek ways to develop high quality software quickly and productively. The critical issues faced by these firms are the inter-relationships, sometimes viewed as trade-offs, between quality, cycle time, and effort in the software development life cycle. Some believe that higher quality can only be achieved with increased development time and effort. Others argue that higher quality results in less rework, with shorter development cycles and reduced effort. In this study, we investigate the inter-relationships between software process improvement, quality, cycle time, and effort. We perform a comprehensive analysis of the effect of software process improvement and software quality on all activities in the software development life cycle. We find that software process improvement leads to higher quality and that process improvement and quality are associated with reduced cycle time, development effort, and supporting activity effort (e.g., configuration management, quality assurance). We are in the process of examining the effect of process improvement and quality on post-deployment maintenance activities.