Chapter 8. Hitting the Target with XP


Michele Marchesi

Copyright © 2003, Michele Marchesi. All rights reserved.

Following the Extreme Programming (XP) practice of using a metaphor to help in understanding and naming concepts, this chapter presents the metaphor of hitting a target, to explain the difference between traditional predictive software development processes and XP, a new adaptive agile methodology. The traditional waterfall process is viewed as the attempt to hit the target on the first shot, which works only if the aim is very accurate and the target is fixed. The spiral process can be viewed as firing at the target a series of shots, each more precise than the preceding. Agile methodologies are like firing a guided missile, which is able to track and hit a moving target, provided its sensors and control system are effective.

Modern software systems are perhaps the most sophisticated and complex systems ever designed and built by man. This huge complexity should be managed by following detailed methodologies for software development and maintenance.

This is the field of software engineering, which strives to apply to software development the sound practices of traditional engineering, a method that has proved effective in developing very complex systems.

The development is done through the phases of requirements elicitation, analysis, design, coding, testing, and deployment. The activities preceding coding may take more than 50% of the total cost and time of the project. They must be accurate enough to enable the system to be coded and released based only on analysis and design documents. These documents usually include many diagrams in the Unified Modeling Language (UML).

In big systems, the analysis and design phases may last for years, which is too long, even if requirements are stable. This is called analysis paralysis. To avoid this, a strict waterfall approach to software development is seldom applied. More likely, a spiral approach [Boehm1988] is followed, in which the various phases are iterated several times, each time evaluating risks and performing the needed corrective actions.

Even with the spiral model, however, each iteration may last several months, often more than a year. If system requirements are stable as in the big space and military projects of the '60s, when software engineering was born the traditional approach enables controlling the development process and obtaining systems that are well structured and documented.

Nowadays, however, we live in the Internet Age. The technology and the market are changing at a speed unthinkable even a few years ago. Consequently, the requirements of software systems are very unstable.

Traditional software engineering simply cannot release software systems on time and keep up with the continual requirement changes of the Internet Age.



Extreme Programming Perspectives
Extreme Programming Perspectives
ISBN: 0201770059
EAN: 2147483647
Year: 2005
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net