Professional Documents
Culture Documents
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
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
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 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:
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.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:
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…
• 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.
• 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.
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:
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.
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:
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.
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.
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.
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.
• 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].
• Organization capabilities
To achieve the above criteria
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.
As for targets of ASD organization, it is required for individual competence, but distributed
project don’t consider individual competence for categorization of performance.
• 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.
This principle is good for the small project with the iterative development, if for a large
project, this principle should be applied after analysis.
• 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.
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.
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.
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.
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.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
Values:
• Concept
• Four purposes:
• Methodologies:
Agile method has two features:
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]
[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
[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