טכניון מכון טכנולוגי לישראל
הטכניון מכון טכנולוגי לישראל - בית הספר ללימודי מוסמכים  
M.Sc Thesis
M.Sc StudentStruvinsky Liat
SubjectImplementing CMMI Practices by Applying Extreme
Programming Practices
DepartmentDepartment of Quality Assurance and Reliability
Supervisor Dr. Amir Tomer
Full Thesis text - in Hebrew Full thesis text - Hebrew Version


Abstract

Agile software development methods, such as eXtreme Programming (XP), have become popular over past years and software development organizations are increasingly interested in finding ways for applying these methods in practice. At the same time, increasing number of organizations apply SEI's CMMI practices for their own process improvement, as well as for supplier selection. While in the past these two approaches were perceived as conflicting, it is now believed that the gaps may be bridged and combinations of the methods are achievable. Nevertheless, there is still need for well defined systematic ways to practice agility under CMMI requirements.


This work shows how an organization may employ the practices introduced by XP, in a way that is compliant with those suggested by CMMI.  


The study part of the work examines CMMI Process Areas, in view of their Specific Goals, and suggests a mapping onto XP practices according to capability levels. In addition, it compares between the basic principles of CMMI and those of XP. Based on these mapping and comparison I provide an XP-based implementation for each Process Area up to capability level 3. I show which CMMI Process Area can be covered completely by XP practices and where adjustments are needed. Subsequently I show that there are restrictions for satisfying CMMI under XP and that capability levels 4 and 5 are beyond the scope of XP.


Finally, as a result of the analysis mentioned above I propose a pragmatically useful process guide for implementing XP practices under appropriate adaptations to relevant CMMI Process Areas. The processes in this guide are represented as Activity Diagrams - a formal visual language taken from UML. The proposed process guide has a theoretical basis and should be tested in industry environment to validate it in practice.