21.08.2013 Views

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

SELF-TEST QUESTION<br />

26.3 Which of the techniques suggest that XP is an incremental approach?<br />

Summary 335<br />

Frequent replanning means that the client should decide which function is most<br />

important and should there<strong>for</strong>e be implemented next. The team estimates how long the<br />

next stage of the project will take and gains agreement (or not) <strong>for</strong> it to proceed. This<br />

way everyone takes responsibility <strong>for</strong> the planning.<br />

Pair programming (see Chapter 28 on teams) is a novel idea, which sounds expensive,<br />

but in reality saves time and improves quality by harnessing collaboration.<br />

A maximum 40-hour week emphasizes that no good is achieved by continually working<br />

too hard. In a conventional project, it is common to resort to overtime to remedy<br />

delays. But this is usually a sign that something has gone wrong and the project is at<br />

the start of the slippery slope that leads to a disaster. XP avoids the need <strong>for</strong> desperate<br />

measures in two principal ways. First, continual testing prevents unpleasant surprises.<br />

Second, frequent releases means that any planning mistakes are quickly evident.<br />

The provision of an on-site customer is quite radical. It stresses that meeting the user<br />

requirements is so important that it needs continual special treatment – the permanent<br />

involvement of a client representative – which, though time-consuming, saves time overall<br />

because reworking is avoided.<br />

The use of coding standards illustrates that some aspects of XP are quite rigorous.<br />

Also the code is the paramount product of a project. Emphasis is placed on clear code,<br />

rather than auxiliary documentation, such as UML diagrams.<br />

It is important to realize that these techniques complement each other, so that it is<br />

sometimes ineffective to use one without another. It is possible, but undesirable to use<br />

one of the XP techniques on its own. This is because they complement each other – a<br />

weakness in one practice is compensated by strength in another. For example, it would<br />

seem expensive in time continually to refactor the design, but the practice of keeping<br />

to a simple design ensures that refactoring is easy.<br />

Summary<br />

Agile methods are a range of lightweight techniques that subscribe to the agile<br />

manifesto.<br />

XP is one agile method with its own values and techniques. The values are communication,<br />

simplicity, feedback and courage. The twelve techniques include pair<br />

programming, test-driven development and continual refactoring.<br />

XP makes the coding, rather than any other documentation, the center of the<br />

product.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!