Stop Thinking, Just Do!

Sungsoo Kim's Blog

Extreme Programming

tagsTags

22 November 2013


Concepts of extreme programming were first implemented in practice by Kent Beck, who is considered to be the creator of this new software development approach. Extreme Programming (XP) was developed during the realization of the C3 project (Chrysler Comprehensive Compensation) (Beck, 2000). The idea of this project was to combine a series of different salary systems into one software application. First development attempt failed due to the complexity of the requirements and difficulties in integration (Beck, 2000). The Waterfall approach used in the development did not yield results. In this critical moment Kent Beck with his XP team was invited to take over the project, and start the development from scratch. Only one year after, they delivered the first working version of the software. The C3 project was eventually interrupted, but the fact that 8 XP programmers managed to develop a functional system of 2000 classes and 3000 methods – remained. The XP approach was then tested, improved and set up for widespread use.

Although XP was not the first agile approach to software development, it is the approach that popularized the use of agility. According to the data from Cutter Consortium (Maljkovic, 2008), in year 2001, 38% of respondents used XP in their everyday software development, which is more than all other agile approaches together.

XP is used in small and medium-sized teams (6-20 people) who make programs with quickly changing conditions and requirements (Beck, 2000). Teams work closely with clients, avoiding advance planning and great documentation on the account of rapid iterations which provide the client with a realistic result.

XP allows the production of long-term software and the ability to react to sudden requirement changes. As explained by Maljkovic (2008), it is based on values of simplicity, communication, feedback, courage and respect. According to the author, XP belongs to Adaptive Software Development methodologies, because it focuses on several key aspects of the process and gives developers the freedom to adjust other aspects to formal validation, management configuration, environment conditions, deadlines and quality standards.

Although XP does not adhere to classic waterfall project life cycle, planning is an important aspect of development, and is emphasized throughout literature. As stated by Beck (2001:13),

Plans are about figuring out a likely course of events and the consequences of the inevitable changes.

XP project planning involves collecting requirements and shaping them into User Stories, planning delivery at the project level, creating iteration plans for each individual iteration in the iterative software development. Small delivery and project velocity measurements play a crucial role in the overall project planning. In addition, XP project development emphasizes the importance of Daily Stand up Meetings and the “Move people around” practice (Wohlin, 2012).

In conclusion, I would say that project planning is of great importance in extreme programming. Just like in everyday life, if we want to develop something new and useful, we have to have a good plan. However, the agile nature of the XP methodology dictates that the planning is implemented in iterations, meaning that each iteration should be preceded by a well-defined plan, which is outlined in the team meeting.

References

[1] Beck, K 2000, Extreme Programming Explained : Embrace Change / Kent Beck, n.p.: Boston, MA ; Addison-Wesley, 2000.
[2] Beck, K, & Fowler, M 2001, Planning Extreme Programming / Kent Beck, Martin Fowler ; Illustrated By Jennifer Kohnke ; [Foreword By Tom Demarco], n.p.: Boston : Addison-Wesley, 2001.
[3] Baird, S. (2003), Extreme programming, Sams Publishing Maljkovic M, Peric N. (2008) XP (eXtreme Programming) Matematički fakultet, Univerzitet u Beogradu, skripta.
[4] Wohlin, C 2012, Agile Processes In Software Engineering And Extreme Programming [Electronic Book] : 13Th International Conference, XP 2012, Malmö, Sweden, May 21-25, 2012. Proceedings / Claes Wohlin (Ed.), n.p.: Berlin : Springer, 2012.


comments powered by Disqus