Missiles and Agile Methodologies


Nowadays, in a world moving at Internet speed, the goals and requirements of software systems are continually reviewed and changed, and programmers must be able to hit a moving target. In this case, artillery does not work. We need a guided missile able to follow the target by using efficient sensors, and a feedback control system able to dynamically minimize the distance between the missile and the target (see Figure 8.3). The lighter the missile, the smaller its inertia and the easier to follow the movements of the target, eventually hitting it.

Figure 8.3. Hitting a moving target with a missile

graphics/08fig03.gif

Our goal is to develop software in the presence of changing requirements. At first sight, we could deem that software, being immaterial, should have little inertia. In fact, it is very easy to modify a program: We only have to change the code and recompile the system. Unfortunately, this is not the case. Software systems can be extremely complex and difficult to modify. Moreover, if the development process is heavyweight, as in traditional software engineering, it is not possible to hit a moving target; in our metaphor, the missile feedback control system (the development process) is so heavy and slow that the target cannot be tracked.

Actually, our goal is not to destroy the target. In software development, hitting the target means developing on time a working system that satisfies requirements. However, because requirements are continually changing, we must be able to hit the target many times.

Agile methodologies are software development processes recently introduced and studied as an effective answer to changing requirements. The key principles behind agile methodologies are reported in the Agile Manifesto [Agile2001].

Among agile methodologies, the most popular is Kent Beck's Extreme Programming [Beck2000].

In the rest of this chapter, I examine XP by using the metaphor of the missile. My aim is to help in understanding why XP practices enable us to hit the "moving target" of software development (see Figure 8.4).

Figure 8.4. Developing a software system with changing requirements

graphics/08fig04.gif



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