Evaluative Report – Should we adopt Extreme Programming? (3,000 word report)

Contents

1. Introduction

2. Are the techniques underpinning XP effective?

2.1 Small releases

2.2 Simple design

2.3 Test-first development

2.4 Collective ownership

2.5 On-site customer

2.6 Refactoring

2.7 Pair programming

2.8 Continuous integration

2.9 Incremental planning

2.10 Sustainable pace

3. Changing requirements

4. Can the change be made to XP?

5. Can XP be delivered in an education environment?

6. What are the strengths and weaknesses of XP

7. Conclusion

8. References

1. Introduction

Among software development processes (SDP), Extreme Programming (XP) has become the best known example of an Agile Development method and is used in small to medium software development companies.

It is recommended as best suited to applications that have unstable and changing requirements. Because XP utilises the benefits of team work it is not suitable for larger companies with development teams working at different locations.

In recent years, there has been an increasing interest in the benefits of Extreme Programming and its effectiveness in the commercial environment.

This report aims to evaluate the effectiveness of XP's adoption in small to medium software development companies since 2004.

2. Are the techniques underpinning XP effective?

There are ten core techniques underpinning the XP method. In order to assess each one a comparison has been done using two case studies:

A study by Layman et al. (2004) looked at the effects of using XP in an industrial case study with Sabre Airline Solutions.

A study by Madsen (2005) detailed the effectiveness of each technique in a start up environment.

However, the main weakness of these studies is the failure to address the impacts on the customer. It is necessary to consider the effect that each technique can have and whether it delivers satisfaction in the end product.

A study by Grisham and Perry (2005) looked at the effects of the XP development environment from the view of customer satisfaction. The techniques bring the customer and the development team closer together by focusing on delivering cost efficiencies and quality. The effects this has on the customer is considered.

The effectiveness of each technique is discussed in order below.

2.1 Small releases

The functionality that provides the highest business value is delivered first. Increments of additional functionalities frequently follow.

Madsen (2005) found that with tight controls over the release management small releases are less risky. This was achieved by having one set of project source files. Layman et al. (2004) also found this technique to be effective as developers preferred the concise tasks to follow over the coming weeks.

The aim of small releases is to build stability into the software development processes which Madsen (2005) has shown.

An early increment delivery could provide customer satisfaction. According to Grisham and Perry (2005) small releases might not always be satisfactory as the impact of each release on the customer is unknown. Having a system deliver business value in small releases may hinder some customers but suit others.

The evidence from these case studies shows that this technique could be successful with customers capable of receiving increments. The developing system might be replacing two older systems and initial increments may not replace the old systems. The customer would have an additional system to use in place which would not be beneficial. A system that is replacing a manual process might be more suited to incremental delivery as each one will provide increased efficiency.

General

This evaluative report shows an appropriate level of critical thinking, progressing logically from description on to analysis and then evaluation. It is also presented in an appropriate report format.

View linked text

Quality: Structure

The writer produces a contents page which helps the reader to navigate through the report. Consistent headings and sub-headings show clear thinking and good structure. The use of questions as headings shows that the writer has analysed the issue into component problems, and also suggests that the report will be interesting to read.

View linked text

Introducing the terms "software development process" and "extreme programming" in full before using the acronyms "SDP" and "XP" within the rest of the report is not only good practice but also helpful to the reader.

View linked text

The writer clearly outlines the aim and scope of evaluation, which helps the reader navigate the following sections and understand the purpose of the writer"s arguments. Clear signposts of intention are also helpful to assessors.

View linked text

This is a complex section of the report with ten techniques to be considered using three different source texts. The writer takes time to explain the approach and the sources to be used. This helps the reader and clearly demonstrates how the subsequent material contributes to the overall analysis.

View linked text

Within each of the numbered sub-headings, the same approach is taken. A short description of the technique is followed by an analysis of how the technique was implemented in the three source texts and a short conclusion on the value of the technique in these and other cases. This allows the reader to navigate the ten techniques with ease.

View linked text

Function: Describe

This is a very concise overview of extreme programming. The writer is assuming some knowledge on the part of the reader, so the overview simply explains the context and scope of the report. For a less informed reader, more information might be necessary.

View linked text

A concise descriptive statement.

View linked text

Quality: Authority

This is an effective way to cite references where the writer not only acknowledges the sources of the studies but also gives a succinct statement of why each study is relevant.

View linked text

Function: Analyse

In the selection of key sources the writer is already demonstrating sound analysis. A third study is introduced to compensate for weaknesses that the writer has identified in the other two studies.

View linked text

A clear analysis of how the two case studies contribute to understanding of the technique in question.

View linked text

Function: Evaluate

An evaluative paragraph presenting the writer"s own judgement on the value of this technique in specific circumstances.

View linked text