You are on page 1of 22

Agile software development

and its' suitability to distributed project

Lihan Guo

52493T
Table of Contents
1 Introduction ........................................................................................................................3
1.1 Background of the study.............................................................................................3
1.2 Research problem ..................................................................................................3
1.3 Objectives of the research...........................................................................................4
1.4 Scope of the study..................................................................................................4
1.5 Methodology of the study ............................................................................................4
1.6 Structure of the report .................................................................................................4
2 Agile software development concept and purpose.............................................................4
2.1 Concepts .....................................................................................................................4
2.2 Purpose .......................................................................................................................5
3 Concept, specifications, categories and usage of distributed project.............................5
3.1 Concept ..................................................................................................................5
3.2 Specifications .........................................................................................................6
3.2 Categories ...................................................................................................................6
3.3 Advantages and disadvantages..............................................................................7
4 Agile methodologies...........................................................................................................8
4.1 XP (Extreme Programming).....................................................................................9
4.1.1 XP phases ............................................................................................................9
4.1.2 Roles and responsibilities .....................................................................................9
4.1.3 Practices, adoption and scope of use .................................................................10
4.2 Other Agile methodologies ........................................................................................11
4.2.1 Cockburn's Crystal Family ..................................................................................11
4.2.2 Highsmith's Adaptive Software Development .....................................................11
4.2.3 Scrum .................................................................................................................11
5 Agile software process and organization .........................................................................12
5.1 Process introduction..................................................................................................12
5.2 Analysis of Agile Software Progress..........................................................................13
5.2.1 Underlying Assumption of Agile Software Progress............................................13
5.2.2 Limitation of Agile Software process...................................................................15
5.3 Criteria for Agile Software Development organization ...............................................15
5.4 Analysis of the usage in distributed project ...............................................................16
6 Suitability to distributed project ........................................................................................16
6.1 principles for Agile Software Development ................................................................16
6.2 Distributed Extreme Programming ............................................................................18
6.2.1 Introduction .........................................................................................................18
6.2.2 Addressing the practices and values ..................................................................18
6.2.3 Challenge and solution .......................................................................................19
6.2.4 difficulties encountered .......................................................................................20
8 Summary and conclusion.................................................................................................20
8.1 Summary ...................................................................................................................20
8.2 Conclusion.................................................................................................................21
9 Reference ........................................................................................................................21
1 Introduction

1.1 Background of the study


Agile Software Development, as a poplar methodology in software development, is used
to reduce the cost to the changes of the project. Distributed project is more and more for
the Global software development. This seminar report tries to study Agile Software
Development’s usability to the distributed project.

With the development of the Globalization, developing software product by distributed


teams is much more popular now. Scientific software development management can
reduce the cost and guarantee the quality. This article studies the usability of a
methodology, Agile Software Development, to the distributed project. It will give some
useful idea and instructions for the application of the Agile Software Development on
the distributed teams.

Recently, there is no articles mainly describe the Agile Software Development’s usability
to distributed teams. The article tries to do some starting work on the basis of some
separated parts of the articles on Agile Software Development and distributed teams

1.2 Research problem


The main problems is the followings:

• What are Agile Software Development and distributed project?


• What is Agile Software development’s suitability on distributed project?

For first problem, the concept and purpose of Agile Software Development will be
described; after that, the concept, specifications, categories and usage of distributed
project comes. The principles, methodologies, process and organization will be
introduced for the second problem and the suitability analysis will be described after the
every introduction.

Although there are a lot of articles on the Agile Software Development and Distributed
software projects, there are few articles on the Agile Software Development usage on
Distributed projects because of some conflicting specifications of both parts, so it is
valuable to research this topic because of the more and more distributed projects are
applied for the software development, especially fro Global Software development.
1.3 Objectives of the research
The main objective is to get Agile Software Development’s usability to the distributed
project, which is the most import objective. There are also two sub-objectives as follows:

• The basic knowledge of the Agile Software Development


• The understanding of distributed project
• How to apply the Agile Software Development in distributed projects

1.4 Scope of the study


In this report, the study of the Agile Software Development will be introduced briefly and the
distributed project will be considered as some categories, e.g. global distributed project for
software, distributed project in a company in one country and so on. About Agile Software
Development, eXtreme Programming will be much more introduced than other
methodology.

1.5 Methodology of the study


About this report, the methodology of the study is literature study because of the basis on
the just the related articles. Most of the articles are from IEEE, there is also some Agile
Software Development knowledge in Internet, e.g. AgileAlliance (which is a famous non-
profit organization that promoting the concepts of agile software development). The report
is based on the research and analysis of the materials I searched.

1.6 Structure of the report


At first, the introduction part will give the readers a brief description of this report; secondly
the concept and purpose of Agile Software Development will be described; after that, the
concepts, specifications, categories and usage of distributed project comes. The principles,
methodologies, process and organization will be introduced one by one, every part has the
related suitability to distributed project, finally, there will be a summary and conclusion for
the total report.

2 Agile software development concept and purpose


2.1 Concepts
There are some different concepts about the Agile Software Development, in previous
study; researchers used “Adaptive Software Development”. Agile Software
Development is firstly used by a group of researchers on this topic in February 2001; it
develops on the basis of the study on the agility of software development, e.g. Extreme
Programming (XP), Adaptive Software Development and some other methods.

The popular concept recently is: Agile Software Development is the use of the light-
but-sufficient rules of project behavior and the use of human- and
communication-oriented rules [1].

The term Agile implies the maneuverability, a business description from Goldman1997
can give more clear description: “Agility is dynamic, context-specific, aggressively
change-embracing and growth oriented, it is about the succeeding in emerging
competitive arenas, and about winning profit, market share and customers.” From the
software development, agile style means good effectiveness in responding to changes.

2.2 Purpose
Agile Software development are used for keep effective to changes by the reduce the
cost of moving information between the people, and reduce the elapse time between
making a decision to seeing the consequences of that decision by the reasonable
management on the following:

• Individuals and interaction over process


By the interactions between the individuals, the information sharing and rapid
changes can be guaranteed.
• Working software over comprehensive documentations
Working software supervises the project process and gives feedback.
• Customer collaboration over contract negotiation
Customers collaborate with experienced developers
• Responding to the changes over following a plan
From the Agility idea, a fixed plan may result in a wrong result.

The four topics above are from the Agile Alliance’s manifesto (Agile Alliance, as a non-
profit organization, dedicated to promoting the concepts of agile software development,
and helping organizations adopt those concepts, http://www.agilealliance.org/home )

3 Concept, specifications, categories and usage of


distributed project
3.1 Concept
In recent years, there is irreversible trend towards the globalization of business, the
economy forces are turning the national competition and cooperation into those in global
scope, to survive in this steady trend, distributed project in the software development is
more and more popular. In this article, distributed project means a software project is
distributed to different development teams (in different area, owned by the one company or
different companies) for implementation of the distributed components.

3.2 Specifications
There are two main frequent specifications from the recent application on the distributed
projects:

• Low cost
• Access to skilled resources

Low cost can guarantee the high benefits of the company, In some developing countries
the labor cost is low, e.g. in India and China, Software Engineer only require much lower
wages, if some companies in developed countries hired this kind of Software Engineers,
the labor cost will be lower than use the native people.

On the other hand, if company handles a software project, there are some hard or new
components in this project, which the company is not good at recently and it is not
necessary to hire some employers to develop those component because of high cost and
low usage rate, the company can distribute those components to other companies that are
good at those parts. It is a way to use skilled resources to guarantee high quality and low
cost

3.2 Categories
Distributed projects in software development is mainly concerned the following style:

• Global distributed software development


In which the software development activities are distributed across multiple sites.

• Global software outsourcing (or Software offshore development)


It is the outsourcing of software development to subcontractors outside the client
organization’s home country. India is the leading GSO subcontractor.

• Globally Dispersed software development


It occurs when the two or more teams are separated by the boundary and the teams
collaborate on common projects [2].

The above concepts are not totally different and are overlapped in some scope. There are
some same particularities:

• Separated project: Project is separated into sub-projects and there are related
teams that in charge of the sub-projects. Most of time, there exists physical distance,
it means in the different area of same countries or different countries, project is easy
to be concerned on the time zone, cultural difference…

• Different development teams: concurrency, allocation, communication,


management …

• Cooperation in same project: communication, knowledge transfer, trust, quality


control…

3.3 Advantages and disadvantages


There are a lot of advantages and disadvantages in the distributed project, so before a
project is decided to be a distributed project, the manager should consider and analyze the
project situation carefully and completely.

The advantages is the following:

• Get rich pool of the trained workforce


Take advantage of the cheap and skilled workforce outside, e.g. in developed
countries, a software engineer has much more wage than that of one in the same
line from the developing countries (e.g. India, China)..

• 24-hour-day work reduce the intervals


It is possible for the appropriated time zone that distributed teams locate.

• Close to customers and using local expertise for the localization the product
Making products in the local market can get the quick feedback and take advantage
of the local expertise to save time and money.

• Take advantage of some benefit policies in some countries


Get the some benefit policies, e.g. national tax policy in some counties sometimes.

• Get low cost in development


It resulted from quite a few advantages (mainly above), e.g. low wage, low tax,
skilled employee and so on.

The disadvantages should be overcome are:

• Communication difficulties
It results mainly from the physical distances between the distributed teams, although
using technology tools (e.g. Videoconference) can overcome some situations, but it
can not solved all.
.
• Concurrent engineering
The members of teams lost sight of their work in the total project; distributed project
requires its members to understand their responsibilities in the total projects for the
good efficiencies.

• Cultural differences
Cultural differences may cause difficulties in communication because of language
and traditional custom. In different culture, there are a lot of differences, e.g. sense
of time, attitudes to work, company structure and so on, if these difference should be
analyzed before the distributed project decision and overcome in practical situations.

• Knowledge transfer
Distributed project requires knowledge transfer, as to knowledge, it includes
application knowledge, development knowledge, and company cultural knowledge
and so on, it can be achieved by the people transfer, training, intellectual property
transfer an so on. In the common situations, knowledge transfer is expensive and
complex.

• Language and time


Language differences increase the time, efficiency of communication between
distributed teams; different time zones may cause synching problems, e.g. some
teleology tools can’t escape the time zone for synchronizing meeting for the
distributed teams

• Coordination and control


For a distributed project, coordination and control are important issues, software
integration, software configuration management, project architecture, quality control,
development and project management are much more complex and may increase
the development cost.

The above advantage and disadvantages are for the common situation, not absolutely.
In chapter 4, Agile methodologies will be introduced briefly. Agile software development’s
suitability’s to distributed project will be analyzed according to this chapter..

4 Agile methodologies
Agile method has two features:

• Agile methods are adaptive rather than predictive


• Agile methods are people-oriented rather than process-oriented [3]

The first one implies Agile methods can adapt to changes and the second one means Agile
method work with people’s nature.
In this chapter, there are some important Agile methods will be described; Extreme
Programming will be introduced much more than others.

4.1 XP (Extreme Programming)


This method is the most famous Agile Software Method; XP is rooted in the Smalltalk
community, it was developed in 1996 and theorized in 1999. Kent Beck played an important
role in the development of XP.

About this part, the introduction is on the basis of Extreme Programming (Beck 1999a)

4.1.1 XP phases
XP begins with four values: Communication, Feedback, Simplicity, and Courage. It consist
of five phase:

• Exploration: customer offers the requirement for the first release.


• Planning: priority order for the requirement and agreement of the contents of first
release.
• Iterations to Release: includes several iterations of the systems before the first
release.
• Productionizing: requires extra testing and checking of the performance of the
system before the system can be released to the customers.
• Maintenance and Death: maintenance phase requires an effort for customer
support tasks; development velocity may decelerate after the system in production.
The maintenance may require incorporating new people into the team and changing
the team structure. [3]

One of the most striking is its strong emphasis on testing. XP puts testing at the foundation
of development, with every programmer writing tests as they write their production code.
The tests are integrated into a continuous integration and build process that yields a highly
stable platform for future development.

4.1.2 Roles and responsibilities


The following table is on the basis of the Extreme Programming (Beck 1999a)

Role Responsibility
Programmer Write tests and keep the program code as
simple and definite as possible, on the other
hand, communication and coordinate with other
programmers and team members is very
important
Customer Writes the requirement and functional tests, and
decides when each requirement is satisfied and
set the priority for the requirements
Tester Help the customer to complete the functional
tests, run test regularly, and broadcast test
results and maintenance testing tools.
Tracker Give feedback for progress and some
expectation study.
Coach Is the person who responsible for the progress
as a whole
Consultant External member possessing the specific
knowledge needed, guide the team in solving
some specific problems.
Manager Manager makes the decision by the analysis on
the basis of the communication with project
team.

Table 1 XP roles and responsibilities

4.1.3 Practices, adoption and scope of use


There are 12 XP practices according to Extreme Programming, (Beck 1999a):

• The planning game: close interaction between customer and programmers


• Small releases: most valuable business requirement, short cycles
• Metaphor: system can be defined by a set of metaphor between the customer and
programmers
• Simple design: design the simplest possible solution, get rid of all the unnecessary
code to guarantee no abused area
• Testing: test-driven development, use automated testing framework.
• Refactoring: removing duplication, improve communication, simplifying and adding
flexibility.
• Pair programming: dynamic, strategic and operational pair members.
• Collective ownership: anyone can change any part of code at any time.
• Continuous integration: code is integrated into finished part as soon as it is ready.
• 40-hour week. Work hour per week should not exceed 40.
• On-site customer: customers should be present and available full-time for the team.
• Coding standards: there exist coding rule for the programmers. [3]
There is no progress that fit every project, rather practices suit for the individual project. It
aims to the small and medium sized teams. The team size is about 3 to 20 team
members. Because of the requirement of communication and coordination between
members at all time, so the geographical distribution is intolerable. The other important fact
is that XP is people-oriented; the resistance against XP practices and principles of the
project members or customers may fail the project.

4.2 Other Agile methodologies

4.2.1 Cockburn's Crystal Family


Alistair Cockburn develops Crystal family; he believes that different kinds of projects require
different kinds of methodologies. He considers the different methodologies according to the
number of people in the project, and the consequences of errors [4].

The Crystals have similar human orientation as XP, but insists on that although the least
disciplined methodology could still succeed, from the ease of execution, people prefer
Crystals to XP although Crystal is less productive than XP, Crystals also puts a lot of
weight in end of iteration reviews, thus encouraging the process to be self-improving. In
February 2001 Crystals and the following ASD became one open question.

Crystal family doesn’t cover the life-critical project; on the other hand, only co-located
project can use this family.

4.2.2 Highsmith's Adaptive Software Development


At the heart of ASD are three non-linear, overlapping phases: speculation, collaboration,
and learning. ASD focus mainly on the problems in developing large and complex, and
strongly recommend the incremental, iterative development with constant prototypes [4].

There are a few practices, e.g. iterative development, feature-based planning and customer
focus group reviews. Some principles are useful, but there are few guidelines to put those
principles into use. In February 2001, ASD was merged into the Crystal family study.

4.2.3 Scrum
The main idea of Scrum is that system development involves in several environmental and
technical variables (e.g. requirement, timeframe, resource) that is likely to change during
the process [4]. The variables make the process unpredictable and complex so that
flexibility of system process is required for response to changes.

Scrum process includes three phases: pre-game, development and post game
Scrum is suitable for the team with 5 to 9 members, if more, there should have more
teams.
4.2.4 DSDM (Dynamic System Development Method)

it is the number one framework fro the rapid application development in UK, it has five
phases:

• Feasibility study
• Business study
• Functional model iteration
• Design and build iteration
• Implementation [4]

DSDM has underlying principles that include active user interaction, frequent deliveries,
empowered teams, testing throughout the cycle. Like other agile methods they use short
time-boxed cycles of between two and six weeks. There's an emphasis on high quality and
adaptivity towards changing requirements.

DSDM is notable for having much of the infrastructure of more mature traditional
methodologies, while following the principles of the agile methods approach DSDM team
has two to six members; there may be many teams in one project.

From the above introduction, XP is most widely applied for software development, the other
methodologies are short of practical application or only used for a narrow scope. Only XP is
widely used and can be as a mature methodology to used after several years’ development
improvement. In this report, XP is considered as the representative of Agile methodologies
to analyze the suitability to distributed projects.

5 Agile software process and organization


This chapter introduces Agile Software process and organization and also analyzes the
suitability for distributed projects.

5.1 Process introduction


ASP means rapid and flexible adaptation to the change of the process, product and
environment [6]. ASP is a total technology based on a content concept. From Mikio
Aoyama viewpoint, there are three main ASP model.

• Incremental and evolutionary process: based on an incremental-delivery and


evolution model by which products are incrementally delivered over time, it consists
of a number of lightweight processes that is small and manageable units.

• Modular and lean process: Consists of lightweight processes, is more modular and
leaner than conventional process models.
• Time-Based process: based on time, the enacting of ASP is iterative with fixed
cycle-time, large-volume development can be divided into multiple releases so that
they can be developed incrementally and concurrently in a predictive way [6].

5.2 Analysis of Agile Software Progress


5.2.1 Underlying Assumption of Agile Software Progress
The benefits of Agile Software Process is based on the following assumptions, the
possibility will be considered for distributed project
Assumption Analysis for distributed projects
1 Customers are co-located with the For distributed project, it is hard to do
development teams and readily according to this requirement, especially
availability when needed by developers; for the Global distributed project. If just for
developers are located in close proximity. one distributed team, it may be possible
for second condition, but hard for the first
one.
2 Documentation and software models do For distributed project, to keep the
not play central roles in software distributed teams running well, good and
development enough documents and software models
play very important role.
3 Software requirements and the It depends on situations, in theory, the
environment in which software is software environment in Distributed
developed evolve as software is being project. Environment better keep stable, or
development it is hard to control the total project.
4 Development processes are dynamically It’s also right for distributed project.
adapted to changing project and product
characteristics are more likely to produce
high-quality products
5 Developers have the experience needed As above
to define and adapt their processes
appropriately
6 Project visibilities can be achieved It is not enough for the project
primarily though delivery of increments management, e.g. milestones that should
and a few metrics be achieved.

7 Rigorous evaluation of software artifacts It is a good way to keep distributed project


can be restricted to frequent informal on right way, for a distributed project, one
reviews and code testing small error in one team may cause
damage.
8 Reusability and generality should not be It depends on situation, if there are some
goals of application-specific software similar components of the development
development product.
9 Cost of change does not dramatically Yes
increase over time
10 Software can be developed in increments Yes
11 There is no need to design for change According to the size of distributed project,
because any charge can be effectively if it is large project, it is better to do it,
handled by refactoring the code. [6]

Table 2 Agile Software Process assumptions analysis


5.2.2 Limitation of Agile Software process
Based the above analysis, from Dan Turk’s viewpoint: Agile Software Process has the
following limitation:

• Limited support for distributed development environment


• Limited support for subcontracting
• Limited support for building reusable artifacts
• Limited support for development involving large teams
• Limited support for developing safety-critical software
• Limited support for developing large, complex software. [7]

The above conclusions are very important.

5.3 Criteria for Agile Software Development organization


There are ten basic criteria for an Agile Software development organization from :
Banedee, N [8]

• Business strategy and vision


What is business, challenges, targets and goal of project

• Organization capabilities
To achieve the above criteria

• Leadership, Functional & Technical competencies


´ How is individual contributes through application of skill, knowledge and behavior

The three above are for all the organizations.

• Performance measurement with action plan


• Performance measurement of project
• Performance measurement for individual technical competencies

The three above are the basis of the quick response for changes. There are fewer
situations for individual technical competencies

• Metrics analysis
Action depends on the result of metrics analysis on measurement data.

• Recommended action plan to improve performance of project


• Recommended action plan to improve performance of individual technical
competencies
Distributed project is concentrate on the improve performance of project.

• Categorization of performance based on required competence to achieve


targets and business goals

As for targets of ASD organization, it is required for individual competence, but distributed
project don’t consider individual competence for categorization of performance.

5.4 Analysis of the usage in distributed project


From last subchapter, ASD organization has two important specifications; firstly, members
learn and improve their skill, secondly, performance measurement and analysis guarantee
the quick response to the changes.

6 Suitability to distributed project


Agile Software Development has its advantages and disadvantages, if it is applied
appropriately, it can enhance the efficiency of distributed project like chapter 6.1. with the
Agile Software Development improvement, there are new technology of ASD are created
for the distributed project, it is not mature but a good start, in Chapter 6.2, it is introduced.

6.1 principles for Agile Software Development


Recently, there are 12 principles for Agile Software Development (in Agile Alliance, see
http://www.agilealliance.org/principles.html), the principles are condensed definition of the
value and goals of Agile Software Development. I analyze these principles one by one.

• The highest priority is to satisfy the customer through early and continuous
delivery of valuable software.

Agile software development is for the iterative development, according to the early
requirements, creates the first working codes, more requirements and more codes. This
principle is useful for the distributed project with the iterative development.

• Welcome changing requirements, even late in development, Agile processes


harness change for the customer's competitive advantage.

This principle is good for the small project with the iterative development, if for a large
project, this principle should be applied after analysis.

• Deliver working software frequently, from a couple of weeks to a couple of months


with a preference to the shorter time scale.
Not appropriate for the large distributed project, for a large project, the project is always
divided into a series of small ones in order to guarantee the quick and repetitive delivery.

• Business people and developers must work together daily throughout the project.

It is a good idea, for a large distributed project, there must be significant and frequent
interaction and communication, but it is hard requirement for the business people and
developers work together for the distributed project. It can be recommend in single team.

• Build projects around motivated individuals. Give them the environment and
support they need, and trust them to get the job done.

This is a principle for management in the project, for a large project, this requirement is not
enough, just offer and trust is not enough, the most important makes sure the motivated
people have the right tool, processes and skills to get the job done.

• The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.

This principle is considered by the distributed project case by case, generally, there should
be a face-to-face meeting for the managers in the beginning of the project to build the trust
each other and sometimes there are some knowledge transfer events, e.g. training. By the
communication technology, face-to-face meeting can be held by videoconference. Face-to-
face is good method, but it is not the best sometimes, turnover document should be the
important information only. If distributed teams are from different countries, some important
conversion is better to by document in case the misunderstanding. Face-to-face conversion
should be used appropriately or increases the cost.

• Working software is the primary measure of progress.

It is a good method for the project with iterative development, but most of projects, not
using iterative development, monitor the project by important milestones.

• Agile processes promote sustainable development. The sponsors, developers, and


users should be able to maintain a constant pace indefinitely.

Of course, it is a good approach, but for a large distributed project, it is hard to keep a
constant pace indefinitely. it can be a expectation.

• Continuous attention to technical excellence and good design enhances agility.

High quality is the key to high speed. The way to go fast is to keep the software as
clean and robust as possible. Thus, all agile team-members are committed to producing
only the highest quality code they can. This principle can be a instruction for all the
distributed team members.
• Simplicity--the art of maximizing the amount of work not done--is essential.

Agile teams do not try to build the castle in the sky. Rather they always take the simplest
path that is consistent with their goals. They don’t anticipate tomorrow’s problems and try to
defend against them today. Simple means speed and flexibility.

• The best architectures, requirements, and designs emerge from self-organizing


teams. An agile team is a self-organizing team.

In theory, if every team is good enough, the project will be good, but not all the teams in a
distributed project are mature and good enough, the important things, e.g. architecture
should be considered and developed at a company or organization level, not just left to
individual to the individual teams.

• At regular intervals, the team reflects on how to become more effective, then tunes
and adjusts its behavior accordingly.

Agreed, this principle is useful for the teams of distributed project. An agile team continually
adjusts its organization, rules, conventions and relationships to remain agile

6.2 Distributed Extreme Programming

6.2.1 Introduction
Distributed Extreme Programming is Extreme Programming with certain relaxations on the
requirements of close physical proximity of the team members, DXP applies XP principles
in a distributed and mobile team environment [9].

In the twelve practices for XP, there are four practices are tightly related with co-located
teams:

• Planning Game
• Pair programming
• Continuous integration
• On-site customers

The above four practices must be addressed in the distributed projects.

6.2.2 Addressing the practices and values


Practices:

• Planning Game: Videoconference and application share software support.


• Pair programming: Remote Pair Programming requires videoconference and
application sharing support.
• Continuous integration: it is for one member in the central team site, remote
member can visit the machine in central site
• On-site customers: Videoconference and conform to the agreed rules.

Values:

• Communication: useful available tool.


• Simplicity: the philosophy “make it simple” have nothing to with the physical
location.
• Feedback: feedback needs to be propagated across distribution boundary
• Courage: value is not affected directly by the distribution of the team.

6.2.3 Challenge and solution


The challenge of DXP used for distributed project can solve the

Scope Challenge Solution


How to react to what one say Good strategy and web new
Communication from a remote site? How can technology can overcome,
receive the information e.g. let members know each
without body gesture, face other to make contact, video
expression and so on? conference, application
sharing, sharing documents
and so on.
Synchronizing availability, Good planning for the proper
Coordination adjusting time difference, coordination of activities
coordinating distribution and among distributed teams.
integration of activities
Member availability affect by Formulate the rules and
Availability the work arrangement, time guidelines for the availability
zone and person limitation of team members.

Trust between the remote Experienced leaders, regular


Management members, new strategy is reports, feedbacks, team
required because of the and events.
difficulty of direct managerial
control over the distant
subordinates
Communication and Select the infrastructure
Infrastructure coordination among teams components, the
members depends on the components should be easy
hardware, software and the to use, and have good
bandwidth of connection interoperability with other
network. tools and availability on
different platforms.[9]

Table 4 Challenge and solution of DXP

6.2.4 difficulties encountered


There are still some difficulties left need improving, main difficulties are caused by the
communication, e.g. different keyboard setting, narrow bandwidth connections, netMeeting
don’t work and so on.

8 Summary and conclusion


8.1 Summary
This article solves the two following questions:

• What are Agile Software Development and distributed project?


• What is Agile Software development’s suitability on distributed project?

Agile Software Development is the use of the light-but-sufficient rules of project


behavior and the use of human- and communication-oriented rules [1].

Distributed project is introduced in Chapter 3, describes the categories, and advantages


and disadvantages.

Agile software Development is described as the following sequence:

• Concept
• Four purposes:

1. Individuals and interaction over process


2. Working software over comprehensive documentations
3. Customer collaboration over contract negotiation
4. Responding to the changes over following a plan

• Methodologies:
Agile method has two features:

Agile methods are adaptive rather than predictive


Agile methods are people-oriented rather than process-oriented [3]

XP, CRISTAL, SCRUM, HASD, and DSDM are introduced and


XP is introduced in details including practice, roles and responsibilities

Agile Software process and organization are described one by one, we understand,
Agile process has limitation for distributed project and agile organization are concentrate on
two factors: one is project success, the other is members learn and improve.

Finally, we analyze the suitability totally, firstly, the ASD principles for distributed project,
secondly, one new technology, DXP is used for distributed project. It isn’t mature but a
good start

8.2 Conclusion
ASD can be used in Distributed project but just part of principles and method, e.g.
by DXP, but DXP is not mature, DXP don’t solve the all the disadvantages of distributed
project, so ASD suitability to distributed project is just in the middle level, but with the
development and improvement of DXP, the suitability will be enhanced.

9 Reference
[1] Cockburn, Alistair, Agile software development, the people factor
Addision - Wesley, Boston, MA, Nov 2001, xxii – xxiii p. [referred 30.11.2002]

[2] Camel, Erran, Globally Dispersed Software Development Teams:


A defination and framework. 5th International Conference on Management of
Technology, march1996 [referred 30.11.2002]

[3] Beck, K., Embracing change with Extreme Programming, IEEE1999, Computer 32 10
1999 [referred 30.11.2002]

[4] Martin Fowler, The New Methodology, June 2002 [referred 30.11.2002]
URL: http://www.martinfowler.com/articles/newMethodology.html

[5] Abramhamsson, P., Salo, O., A., Agile Software development Method review and
analysis, VTT publication 487, 2002-11-20, p27 [referred 30.11.2002]
URL: http://www.inf.vtt.fi/pdf/publications/2002/P478.pdf

[6] Aoyama, M., Agile Software Process and its experience


Software Engineering, Proceedings of the 1998 International Conference.1998.
Page(s): 3 –12. [referred 30.11.2002]

[7] Turk, D., France, R., Rumpe, B., Limitation of Agile Software Process
Agile alliance, 2001 [referred 30.11.2002]
URL: http://www.mountaingoatsoftware.com/articles/IntroducingAnAgileProcess.pdf

.
[8] .; Bhattacharya, S, Creating an agile software development organization: a
key factor for survival in today's economy, Engineering Management Conference, 2002.
IEMC '02. 2002 IEEE International, Volume: 1. 2002
Page(s): 230 –233 [referred 30.11.2002]

[9] Kircher M., Jain P. Corsaro, A. & Levine, D. Distributed extreme Programming
2nd International Conference on eXtreme Programming and Flexible Processes in
Software Engineering, May 2001, p.66-71 [referred 30.11.2002]
URL: http://ciclamino.dibe.unige.it/xp2001/conference/papers/Chapter16-Kircher+alii.pdf

You might also like