Name: Ong Min Hui Jacinta
Group: S6
Course: SC207
EXTREME PROGRAMMING FROM A CMM PERSPECTIVE
Mark C. Paulk, Software Engineering Institute
ARTICLE INFORMATION
Title: Extreme Programming from a CMM Perspective
Author: Mark C. Paulk
Source: IEEE Software Volume 18 Issue 6 Nov/Dec 2001 (Journal)
Pages: 19-26
SUMMARY OF ARTICLE
This article is about the pros and cons of incorporating Extreme Programming(XP) into a software process improvement model such as the Software Capability Maturity Model (SW-CMM).
XP is a set of specific practices (a methodology) used in small, colocated teams to effectively develop small to medium-sized projects with vague or rapidly changing requirements. XP is basically an implementation model that focuses on the developmental level of the project. On the other hand, SW-CMM is a model for building organization capabilities and it focuses on the engineering and management issues and the on systematic process improvement for software organizations. In short, CMM is the way or the culture of doing things. Most XP values complement CMM perfectly. However, modern software projects should incorporate both good values of XP and CMM and some common-sense (key ingredient) while developing the System. By doing so, we can have the best of both worlds as the two methods can create synergy, particularly in conjunction with other good engineering and management practices.
Please refer to the detailed report for further explaination.
RELATION TO COURSE WORK
This article is related to what we have discussed in SC207's first lecture about software process models. XP values such as continual and rapid feedback, continuous integration and testing, simplicity (always work with the simplest design first) and refactoring, makes it suitable for the spiral/evolutionary SW process model where there is short iterative life cycles is essential.
Likewise, we can also adopt some of these good practices in XP for developing our Lab project since we are working in small colocated teams (8 person each team) and developing relatively small-sized projects and we have vague requirements from our clients. We have adopted some XP values such as continual and rapid feedback from our client or test team, collective ownership, simplicity (we get the fundamentals going first before we make further improvements for our system), continuous testing and integration and refactoring. On the other hand, organization capability is not so essential to us now because of our small teams. However, we can still use XP and CMM together to manage our organization even more effectively.
XP FOR THE FUTURE
XP has made immerse contributions to software development. It has helped increase productivity while reducing cost.
It is now an important concept for modern software projects and will continue to be so in the near future. XP is an important new methodology because of the following reasons. First it is a re-examination of software development practices, emphasizing on customer involvement team work instead, that have become standard operating procedures. And second, it reduces the cost of software development which is important for cost conscious companies. Third, XP's simple rules and practices defines a process that is simple and enjoyable to implement.
XP is successful because it stresses customer satisfaction. The methodology is designed to deliver the software your customer needs when it is needed. Also, XP projects unanimously report greater programmer productivity when compared to other projects within the same corporate environment.
Risky projects with dynamic requirements are perfect for XP. These projects will experience greater success and developer productivity using XP. Thus, XP will become even more relevent to software development in the near future.
COMMENTS
This article specifically deals with the pros and cons of incorporating XP into CMM. It is very obvious that the pros clearly outweighs the cons. I think that with some common sense applied to choosing the right XP values and the right environment, XP will complement the CMM and other highly structured models perfectly. XP can help software organizations increase productivity while reducing cost, and thus software organizations should be highly recommended to adopt XP into its practices, and as a result bring greater benefits for software consumers.
Sadly, this article doesn't have any notations or diagrams for representing its ideas. (Please refer to detailed report for diagram on XP lifecycle) However, it does have very good information presented in table form to clearly and fully present the ideas of the article. This article is also written in a very clear and concise manner. It is a very focused article, specifically on the pros and cons of XP in CMM. However, it does provide some insights on the background of XP and CMM, but more details on the background of XP(ie. what is XP? When should XP be used?) and CMM(ie. what is CMM?) would be beneficial for comprehension. This article should also teach interested parties how to go about starting programming in XP. Readers who are interested and convinced of the benefits of XP in CMM may want to start using XP but don't know how. Thus this article should also include examples of some software organizations that have benefitted from incorporating XP practices in CMM so that others can learn from them. Cost conscious companies like Bayerische Landesbank, Credit Swiss Life, DaimlerChrysler, First Union National Bank, Ford Motor Company and UBS are examples that have already benefitted from XP.