• No results found

Agile software development and its' suitability to distributed project

N/A
N/A
Protected

Academic year: 2021

Share "Agile software development and its' suitability to distributed project"

Copied!
22
0
0

Loading.... (view fulltext now)

Full text

(1)

Agile software development

and its' suitability to distributed project

Lihan Guo

52493T

(2)

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

(3)

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.

(4)

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

(5)

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

(6)

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,

(7)

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.

.

(8)

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.

(9)

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)

(10)

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]

(11)

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.

(12)

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.

(13)

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

(14)

Table 2 Agile Software Process assumptions analysis Assumption Analysis for distributed projects 1 Customers are co-located with the

development teams and readily

availability when needed by developers; developers are located in close proximity.

For distributed project, it is hard to do according to this requirement, especially for the Global distributed project. If just for one distributed team, it may be possible for second condition, but hard for the first one.

2 Documentation and software models do not play central roles in software

development

For distributed project, to keep the distributed teams running well, good and enough documents and software models play very important role.

3 Software requirements and the environment in which software is developed evolve as software is being development

It depends on situations, in theory, the software environment in Distributed

project. Environment better keep stable, or it is hard to control the total project.

4 Development processes are dynamically adapted to changing project and product characteristics are more likely to produce high-quality products

It’s also right for distributed project.

5 Developers have the experience needed to define and adapt their processes appropriately

As above 6 Project visibilities can be achieved

primarily though delivery of increments and a few metrics

It is not enough for the project

management, e.g. milestones that should be achieved.

7 Rigorous evaluation of software artifacts can be restricted to frequent informal reviews and code testing

It is a good way to keep distributed project on right way, for a distributed project, one small error in one team may cause

damage. 8 Reusability and generality should not be

goals of application-specific software development

It depends on situation, if there are some similar components of the development product.

9 Cost of change does not dramatically

increase over time Yes

10 Software can be developed in increments Yes 11 There is no need to design for change

because any charge can be effectively handled by refactoring the code. [6]

According to the size of distributed project, if it is large project, it is better to do it,

(15)

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

(16)

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.

(17)

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.

(18)

• 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:

(19)

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

Communication How to react to what one say from a remote site? How can receive the information without body gesture, face expression and so on?

Good strategy and web new technology can overcome, e.g. let members know each other to make contact, video conference, application sharing, sharing documents and so on.

Coordination

Synchronizing availability, adjusting time difference, coordinating distribution and integration of activities

Good planning for the proper coordination of activities among distributed teams. Availability

Member availability affect by the work arrangement, time zone and person limitation

Formulate the rules and guidelines for the availability of team members.

Management

Trust between the remote members, new strategy is required because of the difficulty of direct managerial control over the distant subordinates

Experienced leaders, regular reports, feedbacks, team and events.

Infrastructure

Communication and

coordination among teams members depends on the hardware, software and the bandwidth of connection

Select the infrastructure components, the

components should be easy to use, and have good interoperability with other

(20)

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

(21)

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]

(22)

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]

and helping organizations adopt those concepts, http://www.agilealliance.org/home http://www.agilealliance.org/principles.html http://www.martinfowler.com/articles/newMethodology.html http://www.inf.vtt.fi/pdf/publications/2002/P478.pdf http://www.mountaingoatsoftware.com/articles/IntroducingAnAgileProcess.pdf http://ciclamino.dibe.unige.it/xp2001/conference/papers/Chapter16-Kircher+alii.pdf

References

Related documents

- Lean software development - Wikipedia, the free encyclopedia - ISSUU - Agile Software Construction by Cassondra Santanna - Agile Testing: A Practical Guide for Testers and Agile

Agile has never discussed requirements engineering in distributed environments. Distribution of software saves both time and cost. Moreover, distributed development

Keywords: Initial Agile Software Development Project Budget, Explicit Risk Management Cost, Agile Risk Information Track Sheet, Risk Management- related

Various causes of the communication challenges in Distributed Agile software development are: Different working hours/ Time Zones, Lack of communication tools, Language

Agile software development (ASD) is a relative new term within software engineering. Agile processes, or development methods, represent an apparently new approach for

Keywords: agile, software development, decision making, planning, evolution, improvement, obstacles, problems, solutions, basic leadership

Agile Software Development is presently an emerging discipline in the field of Software Engineering. It is presently advocated by many software professionals. The Agile

ü To explain basic concepts of Agile Software Development and current practices.. ü To implement agile practices during the development of a