the common pitfalls of extreme programming and the ways to ... · with xp. it includes xp practices...

30
The Common Pitfalls of eXtreme Programming Adoption and Ways to Avoid Them Teemu Vainio Helsinki University of Technology [email protected] 48353V

Upload: others

Post on 27-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

The Common Pitfalls of eXtreme Programming

Adoption and Ways to Avoid Them

Teemu Vainio

Helsinki University of Technology

[email protected]

48353V

Page 2: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Executive Summary

This paper presents some of the common issues software development teams have had

when adopting to eXtreme Programming (XP). The sources for the studies were

different articles and seminar reports that contained handled with the new XP

projects.

Firstly, the XP practices are quite explained in quite straight forward manner.

Then the different case studies are generally compared with the adoption state of the

XP practices. This leads to a conclusion that there seems to be clear distinction

between the difficulties of adoption between different practices.

After this initial presentation of the practices and figures, the troubles are handled in

more detail. What went wrong and why?

Finally, some methods and tools to help the adoption of XP are collected from the

case studies. They are then investigated to some extent and listed with their

applicability to a certain practice of XP.

2

Page 3: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Executive Summary .......................................................................................................2 Abstract ..........................................................................................................................4 1 Introduction............................................................................................................4 2 Extreme programming explained...........................................................................6 3 Adoption of different practices ..............................................................................9

Table 1. Adopted practices by professionals ...................................................12 Table 2. Practice adoption comparison............................................................13

4 Troubles with the practices ..................................................................................14 Table 3. Problems with the practices ...............................................................17

5 Methods to help adoption.....................................................................................18 Table 4. Methods to help adoption ..................................................................20

6 Tools to help adoption .........................................................................................21 Table 5. Available tools for use in XP.............................................................24

7 Summary and conclusions ...................................................................................24 8 REFERENCES ....................................................................................................26

3

Page 4: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Abstract

This paper contains some of the most common pitfalls and ways to try to avoid them

when introducing XP for a software development team. The data was collected from

various articles explaining experiences when using XP in a software engineering

project.

1 Introduction

XP is a agile methodology developed by Kent Beck directed for small development

teams with its’ main goal being the management of change while maintaining the

quality of the product in development (Beck, 1999).

XP looks quite simple on the paper, but implementing the practices (Beck, 1999) has

proved to be quite a big task for many development teams. The different practices are

usually either applied only to some extent or not used altogether. Therefore, it is

important to find out what practices of XP are not so easy to execute in daily work

and why and what could be done to help the adaptation. To define the terminology, by

adaptation I mean that a practice is accepted as a part of daily workflow even after the

initial introduction. By introduction I mean the first few tries of something, when the

excitement is possibly blurring objectivity. This is quite critical for new

methodologies such as XP, since it involves practices that are quite radical and hard to

adapt since they are totally against the mindset of a typical developer (Pelrine, Uhtes

4

Page 5: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

& Noack, 2000). Or as Beck (1999, p. 153) himself put it “The XP practices are so

sideways to what we have heard and said and maybe even been successful with in the

past”. That’s why Beck (1999) suggests three steps of adoption:

1. Pick your worst problem

2. Solve it the XP way

3. When it’s no longer your worst problem, repeat.

This paper presents some of the experiences the developers have had

with XP. It includes XP practices that have been found difficult to adopt to and some

of the the ways and tools they have used to counter the problems with the practices.

Since XP is an agile methodology directed for small developer teams, typically about

10 people, I have not studied any cases where that constraint is clearly exceeded. One

should notice that this means teams, not organization.

The research methods used were studying a set of case studies where a development

team was adapting to XP and presented some problems, obstacles, experiences or

improvements. Since XP is new way of software development there are not too many

sources of case studies available. The case studies used were the ones found from the

library of Institute of Electrical and Electronics Engineers (IEEE)

(http://ieeexplore.ieee.org), from XP2001 conference

(http://www.xp2001.org/xp2001/conference/), from XP Agile Universe

(http://www.xpuniverse.com/home), from Association for Computing Machinery

(ACM) Proceedings (http://www.acm.org), from Software Development Magazine

5

Page 6: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

(http://www.sdmagazine.com) and from Psychology of Programming Interest Group

(PPIG) (http://www.ppig.org) homepage.

The body of this paper is divided into five major chapters; in the chapter two, I briefly

explain the practices of XP. In the third chapter, I have collected the adoptions of

practices in the cases. In the fourth chapter I have collected the various problems that

have been encountered in the adoption. The last two chapters are, consecutively,

methods and tools that can be used to make transition to XP practices easier.

2 Extreme programming explained

XP is a high discipline based, agile methodology to answer to the common event of

requirements changing even on the final run of the software development. XP is

targeted for small groups of developers (10 or less) and offers a set of practices to

apply to everyday software development. Namely, these are as follows:

1. Planning game

Since the requirements are going to change anyway, the system is planned

together with the customer. Customer will write down (preferably on

cardboard cards) his user stories that will describe a single user story.

Developers will then estimate the time needed to implement each card and

finally the customer can select which of the cards are implemented in the

given timeframe.

6

Page 7: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

2. Small releases

This practice is the manifestation of the incremental nature of the XP. The

development team should increase the features conservatively for each release.

3. Metaphors

The development team should invent and deploy metaphors of the system to

promote a common way of the naming and conventions of the system. People

of the project (customer and developers) should use the same language to

understand each other.

4. Simple design

Do only the simplest thing that will provide the given feature and nothing

more. This means that functionality should be isolated in their own

modules/functions/classes so that each piece of code performs as little as

possible.

5. Tests

Testing is divided into two categories; unit testing and acceptance testing.

Unit tests are meant to be implemented before the actual feature. This way the

developer has to think the interfaces and functionalities his class/module is

going to provide. The unit tests should run 100% all the time.

Acceptance tests are specified by the customer to test a specific feature or

sometimes a set of features. When all the acceptance tests have passed for a

given user story that user story is considered done.

7

Page 8: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

6. Refactoring

Refactoring is part of the iterative process of making the system simpler. If

some piece of code can be made simpler it should be done. Also any duplicate

code should be taken out.

7. Pair programming

The code is written in pairs. This means that two people sit on the same table

using the same computer writing the same code. The other one can review

while the other pair writes code, and in a tight spot he can help the other one

out.

8. Continuous integration

The code is integrated to a common base at least once a day. All unit tests

should run 100% both before and after the integration.

9. Collective ownership

Everybody owns the code. This means that each developer should be able to

implement anything in the whole system.

10. On-site customer

The representative of customer should be always accessible by the

development team. This means the feedback from the people who will use

system should be immediate.

8

Page 9: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

11. 40 hr weeks

No overtime is allowed except as a last resort when one week of overtime can

be allowed.

12. Coding standards

The code must be easily readable by every developer. These makes also sure

that no pair programming conflicts will arise so easily.

13. Open workspace

People should work in the same open environment, not fill up isolated offices.

The main point is, though, that communication should be fluent.

One should note that these practices are evolving all the time and are subject to

change. This means that even new practices can arise and old ones disappear or at

least change their form.

3 Adoption of different practices

The nine different cases are organized in the following activity matrix (Table 1.) to

show the adoption of different practices and the possible note if the practice was not

included in the paper. The different cases are as follows:

• Company A (Grenning, 2001), a software company building new system to

replace existing legacy product. A separate development team wanted to test

something new.

9

Page 10: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

• Company B (Huisman, Poole, 2001), and independent software vendor named

Iona Technologies. Problems with code entropy, no clear process for software

development.

• Company C (Gittins, Hope, 2001), a small software development company

with guru-styled solutions leading to unmanageable code. Nine developers,

progressive adaption of XP.

• Company D (Yongqing, Wolff, 2001), a young and dynamic web bank named

EuropeLoan Bank with rapid changing requirements. Technology changing

very fast too.

• Company E (Johansen et al. 2001), a small software company with few

developers, a complete product but problems with schedules and management

of requirements for new versions.

• Company F (Kini, Collins, 2001), a software outsourcing company. Explicitly

mentioned team size, four developers and one tester.

• Company G (Martin, Newkirk, 2000), a small and experienced development

team building a registration system. A need for aggressive process.

• Company H (Pelrine J. 2000 ), a fixed-price software development project.

Need to implement a simulator for pharmaceutical company.

10

Page 11: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

• Company I (Morales, 2002), an independent software vendor, Symantec.

Predictability and quality improvement was necessary. Few XP teams located

separately.

Four different adoptions are Not adopted(Red), Partially adopted (Light green),

Adopted (Dark green) and Not included(White) and these are marked with colors

given in parenthesis. Some of the papers left adoption of some practices quite

unclear, so every time there seemed to be some controversy about the matter I left the

box white(Not included). This approach leaves something to hope for and therefore

the value of the Table 1. is not as good as it could be.

11

Page 12: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Table 1. Adopted practices by professionals

A B C D E F G H I Planning game

Partially adopted

Partially adopted

Adopted Adopted Partially adopted

Adopted Adopted Partially adopted

Partially adopted

Small releases

Adopted Adopted Not included

Adopted Adopted Adopted Adopted Not included

Adopted

Metaphors

Not adopted

Adopted Not adopted

Not included

Not included

Not included

Not included

Not included

Not included

Simple design

Adopted Partially adopted

Not adopted

Not included

Adopted Adopted Not included

Not included

Adopted

Tests

Adopted Adopted Not adopted

Not included

Partially adopted

Partially adopted

Adopted Not included

Adopted

Refactoring

Adopted Adopted Partially adopted

Adopted Partially adopted

Adopted Not included

Not included

Partially adopted

Pair programming

Adopted Partially adopted

Partially adopted

Adopted Partially adopted

Partially adopted

Adopted Partially adopted

Adopted

Continuous integration

Adopted Adopted Not included

Not included

Not included

Not included

Not included

Not included

Adopted

Collective ownership

Adopted Adopted Partially adopted

Not included

Not included

Not included

Not included

Not included

Not included

On-site customer

Partially adopted

Adopted Not adopted

Not included

Adopted Not included

Not included

Partially adopted

Partially adopted

40hr week

Adopted Not adopted

Not included

Not included

Adopted Not adopted

Not included

Not included

Not included

Coding standards

Adopted Adopted Not included

Not included

Not included

Not included

Not included

Not included

Not included

Open workspace

Not adopted

Adopted Adopted Adopted Not included

Adopted Not included

Not included

Not included

Table 2. shows all the results gathered from the Table 1. where they are collected,

averaged and sorted in descending order by the adoption. Every adoption is 2 points,

partial adoption is 1 point, not adopted is 0 points and not included means that it is not

included in the calculation. These points are then summed and divided by number of

adopters (N). This means, that the bigger the average, (with maximum of 2 (all

adopted), and minimum of 0(no adoption)) the better the adoption.

12

Page 13: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Table 2. Practice adoption comparison (2=all adopted, 1=half adopted, 0=no

adoption)

Practice Adoption N

Small releases 2,00 7

Continuous integration 2,00 3

Coding standards 2,00 2

Collective ownership 1,67 3

Open workspace 1,60 5

Refactoring 1,57 7

Simple design 1,50 6

Planning game 1,44 9

Pair programming 1,44 9

Tests 1,43 7

On-site customer 1,40 5

40hr week 1,00 4

Metaphors 0,67 3

Interesting point to notice is the quite big divergence of the results. One reason is

likely the fact that Gittins & Hope (2001), for instance, studied the adoption of XP on

a project already started. Other factors can probably be explained by different

company cultures, people from different backgrounds, internal/external projects etc.

Also the fact, that some of the practices were not included, decreasing the N, can

cause misconceptions. Finally, the total amount of case studies used is so small, that

13

Page 14: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

no real and mathematically reliable statistics can be applied. Since all these different

factors aren’t handled differently one should use common criticism for the tables

above. Boldly, however, I have used them as a basis for contemplation in the rest of

this paper.

From the data gathered, one could make such assumptions that small releases,

refactoring, open workspace, collective ownership, planning game, simple design,

continuous integration, pair programming, and coding standards were the most

adopted practices. I find the fact that planning game was so well adopted perhaps the

most surprising. That cannot even be explained by the different motivators of internal

customers (Johansen et al. 2001) since the best adoptions came from the companies

with external customers. Perhaps the conservative approach to software engineering is

truly approaching its demise even from the customer’s point of view.

The hardest practices to adopt were metaphors, 40hr week, on-site customer and

testing. Still testing got surprisingly big adoption considered its nature of flipping the

software development upside down. Possibly people have noticed the increased

reliability of the system when the tests were implemented.

4 Troubles with the practices

One of the most common troubles with XP seems to be the introduction of writing the

test code first and the actual function code afterwards. It seems that in people’s minds

there are psychological barriers and uncertainty of one’s ability to work in this

seemingly backwards manner (Johansen et al. 2001).

14

Page 15: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Metaphors were hard to adopt perhaps since people didn’t quite understand its

meaning and motivation (Gittins, Hope, 2001). Also it seems that a formulation of a

common language for all to understand is not easy and needs time to evolve

(Grenning, 2001). What I found interesting was the fact that overtime was so

common. It seems that the adoption of different practices leads to overtime, since time

is spent learning XP. On the other hand at least one company culture almost

demanded overtime, since otherwise the team could be said as not being committed

(Johansen et al. 2001).

Planning game was quite well adopted through out the professional teams, but the

management seemed to be one of the biggest obstacles (Grenning, 2001). Honestly,

developers and customers writing requirements on cards and switching them around

looks rather silly and perhaps even unprofessional.

Deadline pressure seem to give its own effect on the refactoring, (Yongqing, Wolff

2001) since when the deadline approaches, refactoring is easily forgotten. This can

easily lead to messy and badly manageable code.

There seems to be trouble to have the customer on-site also. This probably is a

financial issue, since one customer spending time with the development team can be

considered as a lost resource and therefore it needs quite brave executives from the

customer’s side to allow this.

15

Page 16: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Coding has always been more or less a personal thing for developers. You use your

own tools, your own wits and produce modules. True, you are a part of a collective,

but still the actual development is your own art. Therefore some people are naturally

not receptive of pair programming. The studies show that those who are not repetitive

will not “buy” the pair programming no matter what.

Open workspace is usually adopted well but not co-located offices can cause

problems especially if people do not have a common way of communication between

the offices.

16

Page 17: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Table 3. Problems with the practices

Practice Problem(s)

Planning game • Lack of belief from management

• Hard to evaluate the velocity at

the beginning

Unit tests • Intrinsic opposition to working

“backwards” manner

Metaphors • Motivation and meaning not clear

• Not so easy to develop a common

language for all participants

Refactoring • Deadline causes slips from

clearing and refactoring one’s

code

Customer on-site • Cost

40hr weeks • Management can see this as a lack

of commitment

Pair programming • Some people will just not do it, no

matter what

Open workspace • Offices can be separate;

communication is not fluent

17

Page 18: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

5 Methods to help adoption

Generally, it seems that a bit by bit adaptation cannot be underlined enough. It is a

major factor to make sure that the XP practices will make their way into development

teams. This is what Beck (1999) has said in his book and it is clear from the cases too.

Interesting paper from Collins and Miller (2001) describes a meta-process to guide the

adaption of XP. It uses the three maturity levels of XP introduced by Beck, namely

XP (out of the box), adaptation, transcendence, and then states that reaching the final

level as fast as possible is not the most important thing. The most important thing is to

move only when needed. This is quite well put in the paper (Collins, Miller, 2001) as

follows: “... the team should adapt the process from within to produce the best

possible results. Nothing drains a team more than having change dictated to it.”

One issue that arised was the need for someone to tutor the unit testing practice

(Johansen, Stauffer & Turner 2001). This means that the tutor should definitely be

more than a coach. He should know good tools and methods to implement the unit

testing and acceptance tests. Also training for all affected staff, even including the

executives is suggested (Griffin 2001) for better XP adoption in an organization.

The tutoring specified in the previous paragraph can be extended to include even the

customer. The customer can be quite lost and confused when the developer team starts

laying out cards. It seems quite clear, that in the beginning the customer should also

be taught about the unorthodox-like ways of XP.

18

Page 19: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

If pair programming just doesn’t seem to sit on the development team, consider

extensive code reviews with emphasis also on strict coding conventions and design

the bug fixes beforehand. Also one thing to keep in mind in pair programming is to

teach more than just coding. If the pair is not familiar with the versioning control

system, that should be taught as well.

The customer not on-site can be solved by several ways. Since the motivator for

customer on-site is the immediate feedback of the user of the system, development

teams can use a proxy for customer. This proxy can be from the sales department with

deep knowledge of the client needs. This alongside with demo workshops and

meetings with the actual customer seem to provide enough customer interaction to

provide good results.

To help the adoption of coding standards, use templates for source code. These

templates can include an example frame of class or function with example

commenting and convention of the source code.

For helping the planning game, short iterations, 40hr weeks the customer should be

convinced of the “big bugs as one story”-approach as suggested by Beck and

Fowler(2000). This can be, though, more easily said than done, since it can be hard

for customer to get the hang of using his “credits” on mistakes other people have

made and shouldn’t be present in the first place.

19

Page 20: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Refactoring can be made easier by specifying explicit refactoring weeks rather than

trusting that people will recfactor the code implicitly while developing and

implementing tasks from the planning game.

Also for planning game and dealing of tasks, some ground rules can be set. For

instance if a developer fails to deliver a story, he may not sign for it in the next

iteration. Being strict and following the deliveries of the developers will keep the

velocity of each person aligned with his tasks.

Table 4. Methods to help adoption

Practice Method(s)

Refactoring • Explicit refactoring days/weeks

Planning game • Big bug as a story

• Rules for choosing tasks, monitor

velocity

Coding standards • Code templates

Customer on-site • Customer proxy

• Demo sessions often

All • Extensive tutoring to all levels of

organization interacting with XP

with an experienced tutor.

Pair programming • Code reviews

• Design the fixes

• Strict code conventions

20

Page 21: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

6 Tools to help adoption

Adoption of new processes and methodologies are easier to conduct if there are

enough supportive and automating tools available. Even though XP is such a young

agile process model; there are already some tools for the XP developer.

For the unit testing practice there exists lots of frameworks to speed up the

development and automation of testing. JUnit (http://www.junit.org) was used in

many places (Kini & Collins 2001)(Morales 2002) JUnit provides a Java unit testing

framework which can be used to automate the unit testing. A C++ port of this tool is

also available called CPPUnit (http://sourceforge.net/projects/cppunit/). Other testing

tools mentioned in the cases were HTTPUnit (http://www.httpunit.org) and scripting

languages such as Perl and Python. It seems that these testing frameworks played a

large part in adaption of unit testing, since they were used almost universally, and

make the writing of the test cases and executing them easier. Of course, depending on

the context and technology people should pick their test tools carefully. For instance

on projects already started, the testing practice can be hard to apply retrospectively

even with proper tools (Gittins, Hope 2001).

Automating the UI testing can be a problem, but there seems to exist a some tools for

that purpose too. In one case (Dunsmore et al., 2001) Rational’s

(http://www.rational.com) ClearQuest

(http://www.rational.com/products/clearquest/index.jsp) was used for defect tracking

21

Page 22: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

and Segue’s (http://www.segue.com) SILK

(http://www.segue.com/html/s_solutions/silk_s_family.htm) was used to create scripts

to perform end-to-end testing of the system. Then a tool from NuMega

(http://www.numega.com) called TrueCoverage

(http://www.numega.com/products/cover/tc_java.shtm) is used to see how much the

test code coverages the application programming interfaces. Rational Robot

(http://www.rational.com/products/robot/index.jsp) is also a tool, which can be used

to automate the end-to-end testing of a system. Using all these different tools a high

coverage, totally automated testing process can be built. This will clearly make the

testing process more easier, faster and funnier to deploy.

For refactoring there was at least one tool available. This tool is called Codemorpher

for Java (http://www.xptools.com/?doc=products) and it claims to automate the

restructuring, cleaning up and making the code more readable. In no case studies were

any refactoring-specific tool mentioned, but it is easy to see the added value of at least

partly automated refactoring. Interesting way of refactoring analysis was though

mentioned in one case (Kini & Collins 2001) where a source code analysing software

was used. This software was JavaNCSS

(http://www.kclee.com/clemens/java/javancss) and it generates metrics from the

source code automatically. These metrics, including non commented source

statements, cyclomatic complexity number, count of packages, classes, functions and

inner classes (all for global, class and function-level scope) can then be used in

analysis to find out code that needs refactoring or more tests.

22

Page 23: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Continuous integration and small releases need a robust and effective versioning

control system. Version control is not a new thing, and there are plenty of these tools

in the market. In the studies, open source CVS (http://www.cvshome.org/) was

mentioned and Source Integrity from Mortice Kern Systems (http://www.mks.com).

An interesting tool that was mentioned in a paper from Lippert et al. (2001) was

called JWAM IntegrationServer. It is a tool especially developed for XP use. It

combines the unit testing practice and short integration cycles. There are of course

many others not mentioned in the studies, such as Visual Sourcesafe from Microsoft

(http://www.microsoft.com).

Coding standards are hard to set in place without an automated watchdog. This kind

of a system will point out slips from the standards and the developer can gradually

learn the standard thoroughly. There are some such tools available such as Jtest and

CodeWizard from Parasoft (http://www.parasoft.com) which were mentioned in the

cases.

For planning game there are no specific tools, but one can be innovative and use all

kinds of different reporting and documentation systems to move the game from

analog to digital. This can be an issue in workplaces, where the customer and/or the

superiors find it hard to start playing around with cardboard stories. The semantics

will be the same, though.

Since the development team can work different locations an easy and fast way of

collective communication should be available. In the cases no specific tool was

explicitly mentioned. For these purposes there are quite a few options available. From

23

Page 24: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Microsoft (http://www.microsoft.com) a specific tool for the purpose is MSN

Messenger. This tool can take advantage of live video feed and audio. Sometimes

there is too little bandwidth and a simpler tool is needed. For this purpose Internet

Relay Chat (IRC) can be used. This allows people to create channels where to

communicate. ICQ (http://www.icq.com) works on the same basis, but is more

advanced.

Table 5. Available tools for use in XP

XP Practice Tool

Unit testing / Acceptance testing JUnit, HTTPUnit, CPPUnit, script

languages such as Perl and Python,

Rational Robot, NuMega’s

TrueCoverage, Segue’s SILK

Refactoring Codemorpher for Java, JavaNCSS

Continuous integration CVS, Visual Sourcesafe, Source

Integrity, JWAM IntegrationServer

Coding standards Jtest, CodeWizard

Open workspace / Communication MSN Messenger, IRC, ICQ

7 Summary and conclusions

XP is an agile methodology adaptive to the change of requirements and is meant for

small development teams. The cases seem to express that the practices are not so easy

to adopt with just a snap of fingers and an experienced coach with initial coaching

24

Page 25: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

tutor is necessary. Most of the studies show that some modifications for the practices

are made to support the adoption.

Overall, I think, companies adopting XP did quite well. The adoption of practices was

much higher than one would expect when getting familiar with the XP for the first

time. Of course, if those practices that were not mentioned in the studies are

considered not adopted the situation can be said to be quite different.

Tools are also very important to provide support and frames for XP. For example, the

unit testing practice is very laborious task to perform without any framework.

Therefore, it seems, most of the studies gave examples of different tools set in place

to help the adoption.

A positive finding and perhaps a signal of the emerging maturity of XP can be said to

be the presence of the various tools to provide support for the different XP practices.

Especially since most of the tools are developed just for the XP.

I found some interesting things while writing this paper; First of all, there is still a big

lack of case studies available of XP adoptions. The few available aren’t too good to

use for comparisons since the industry of the companies, motivator for XP and

different maturities vary so much. Therefore some common way of making these

cases to “stand on the same line” would be more than welcome to help assessment of

adoption of XP.

25

Page 26: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

This paper presents the common problems that different teams and companies have

encountered and the various cures they have used to tackle these i.e. killing the

symptoms, but not perhaps the disease. For the future it would be interesting to find

out what actually leads to the problems and try to find out common denominators and

preventives to make the adoption of practices proceed without woe. This means

studying of job culture, different nationalities of people, education of people etc.

Finally, the causality between the adoption level of XP and the project successes

would also be an interesting issue to study. Are some of the practices clearly “the life

veins” of XP-projects, and will failing in them probably lead to failure in the project

too?

8 REFERENCES

2nd International Conference on eXtreme Programming and Flexible Processes in

Software Engineering [Online], Available at:

http://www.xp2001.org/xp2001/conference/ [2002, March 12].

Association for Computer Machinery homepage [Online], Available at:

http://www.acm.org

Beck, K. 1999, eXtreme Programming Explained: Embrace Change, Addison-

Wesley

26

Page 27: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Beck, K., Fowler, M. 2000, Planning Extreme Programming, Addison-Wesley

Collins, C. T., Miller, R. W. 2001, ‘Adaptation: XP Style’, XP2001

Conference, Italy, Sardinia, [Online], Available at:

www.xp2001.org/xp2001/conference/papers/Chapter13-Collins+alii.pdf

[2002, March 10].

Dunsmore K., Wiemann C., Wolosin G. 2001, ‘A Practical Application of XP’,

XP2001 Conference, Italy, Sardinia, [Online], Available at:

www.xp2001.org/xp2001/conference/papers/Chapter27-Dunsmore+alii.pdf

[2002, March 11].

Grenning, J. 2001, ‘Launching Extreme Programming at a Process-Intensive

Company’, IEEE Software, November/December, pp. 27-33

Griffin, L. A. 2001, ‘A Customer Experience: Implementing XP’

XP Universe Conference, Raleigh, NC, [Online],

Available at: http://www.xpuniverse.com/2001/pdfs/XPU01.pdf [2002, March

11].

Gittins, R., Hope, S. 2001, ‘A study of Human Solutions in eXtreme Programming’,

[Online], Available at: http://www.ppig.org/papers/13th-gittins.pdf [2002,

March 10].

27

Page 28: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

HTTPUnit, a testing framework, emulating browser behavior, homepage, [Online],

Available at: http://www.httpunit.org [2002, March 10].

Huisman, J.W., Poole, C. 2001 ‘Using Extreme Programming in a Maintenance

Environment’, IEEE Software, November/December, pp. 42-50

Institute of Electrical and Electronics Engineers homepage [Online], Available at:

http://ieeexplore.ieee.org [2002, March 16].

Johansen, K., Stauffer R., Turner D. 2001, ‘Learning by Doing: Why XP Doesn’t

Sell’, XP Universe Conference, Raleigh, NC, [Online],

Available at: http://www.xpuniverse.com/2001/pdfs/XPU01.pdf [2002, March

11].

JUnit, a Java testing framework homepage, [Online], Available at:

http://www.junit.org [2002, March 15].

Kini, N., Collins, S. 2001, ‘Steering the Car: Lessons Learned from an Outsourced

XP Project’, XP Universe Conference, Raleigh, NC, [Online],

Available at: http://www.xpuniverse.com/2001/pdfs/XPU03.pdf [2002, March

11].

Lippert M., Roock S., Tunkel R., Wolf H. 2001, ‘Stabilizing the XP Process Using

Specialized Tools’ , XP2001 Conference, Italy, Sardinia, [Online], Available

28

Page 29: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

at: http://www.xp2001.org/xp2001/conference/papers/Chapter9-

Lippert+alii.pdf [2002, March 15].

Martin, R. C., Newkirk J. 2000 ‘Extreme Programming in Practice’, OOPSLA

Companion, Minneapolis, Minnesota, United States, pp. 25-26 [Online],

Available at: http://delivery.acm.org/10.1145/ 370000/367909/p25-

newkirk.pdf?key1=367909&key2=6445435101&coll=portal&

dl=ACM&CFID=1769491&CFTOKEN=67865367 [2002, March 15].

Morales, W. A. 2002 ’Going to Extremes’, Software Development Magazine, January

[Online] Available at: http://www.sdmagazine.com/documents/s=2279/

sdm0201a/ [2002, March 15].

NuMega, a subsidiary of Compuware Corp [Online], Available at

http://www.numega.com [2002, March 10].

Pelrine, J. 2000 ‘Modelling infection scenarios – a fixed-price eXtreme Programming

success story’, OOPSLA Companion, Minneapolis, Minnesota, United States,

pp. 23-24 [Online], Available at: http://delivery.acm.org/10.1145/370000/

367907/p23-pelrine.pdf?key1=367907&key2=1006435101&

coll=portal&dl=ACM&CFID =1769491&CFTOKEN=67865367 [2002,

March 15].

Pelrine, N., Uhtes, R., Noack, C. 2000, ‘Why it is hard to learn eXtreme

Programming?’, Daedalos International, [Online],

29

Page 30: The Common Pitfalls of eXtreme Programming And the Ways to ... · with XP. It includes XP practices that have been found difficult to adopt to and some of the the ways and tools they

Available at: http://www.daedalos.com/DE/DOWNLOAD/

eXtreme-Programming/whyIsItHardToLearnXP_NOD2000.pdf [2002, March

15].

Psychology of Programming Interest Group homepage [Online], Available at:

http://www.ppig.org [2002, March 10].

Rational Software Corporation web site [Online], Available at:

http://www.rational.com [2002 March 10].

Segue Software Inc web site [Online], Available at:

http://www.segue.com [2002, March 10].

Software Development Magazine homepage [Online], Available at:

http://www.sdmagazine.com [2002, March 29].

XP Agile Universe homepage [Online], Available at:

http://www.xpuniverse.com/home [2002, March 17].

Yongqing, Y., Wolff, W. 2001 ‘A great challenge: XP in a typical dot-com’, XP2001

Conference, Italy, Sardinia, [Online], Available at:

http://www.xp2001.org/xp2001/conference/papers/

Chapter31-Yongqing+alii.pdf [2002, March 15].

30