adapting agile principles in distributed software development

17
Adapting Agile Principles in Distributed Software Development Esin Karaman SWE586 Boğaziçi University 1

Upload: esin-karaman

Post on 30-Oct-2014

383 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Adapting Agile Principles in Distributed Software Development

1

Adapting Agile Principles in Distributed Software Development

Esin KaramanSWE586

Boğaziçi University

Page 2: Adapting Agile Principles in Distributed Software Development

2

AgendaWhat is Distributed Software Development

(DSD)?Why DSD?Problems with DSDAgile PracticesCombining DSD with agile methodsBenefitsChallengesTools and techniques

Page 3: Adapting Agile Principles in Distributed Software Development

3

What is Distributed Software Development (DSD)?Software is developed in a multi-site, multicultural, globally distributed environment.

Page 4: Adapting Agile Principles in Distributed Software Development

4

Why DSD?

Lower costAccess to skilled resourcesHaving round-the clock developmentMinimize risk in case of natural catastrophes

Page 5: Adapting Agile Principles in Distributed Software Development

5

Problems with DSD

Strategic issuesCultural issuesInadequate communicationKnowledge managementProject and process management issuesTechnical issuesRisk management

Page 6: Adapting Agile Principles in Distributed Software Development

6

Agile PracticesAgile manifesto contains twelve principals and four core values are

Individuals and interactions OVER processes and tools

Working software OVER comprehensive documentation

Customer collaboration OVER contract negotiation

Responding to change OVER following a plan

Page 7: Adapting Agile Principles in Distributed Software Development

7

Combining DSD with Agile MethodsMost of the agile methodologies (e.g. scrum)

assume that the team is located in a single room

In the 2008 State of Agile Development survey, conducted by VersionOne, 57% of respondents stated that their teams were distributed. Further 41% of respondents state that they were currently using or plan to combine agile with outsourced development.

There are studies which show that agile principles help in overcoming some challenges faced by distributed development.

Page 8: Adapting Agile Principles in Distributed Software Development

8Globally distributed agile teams

Page 9: Adapting Agile Principles in Distributed Software Development

9

BenefitsIncreased visibility of project status via short

continuous iterationsContinuous integration of software code also

helps to reduce configuration management issues.Development in cycles makes it easier for

participants to see the short term goals and have a positive effect on communication between teams

Sprint reviews can be an effective way to improve external communication

Create trust between different cultures involved in the process by constant communication and delivery of software

Page 10: Adapting Agile Principles in Distributed Software Development

10

Benefits(2)According to a study made by Passivara,

Durasiewicz and Lassenius quality of software and communication are improved and communication and collaboration is more frequent than before because of the Scrum methodology used in the project. Also the motivation of team members was reported to have increased.

Page 11: Adapting Agile Principles in Distributed Software Development

11

ChallengesAgile teams rely on intense person to person

communicationDocumentationPair programmingDifferent working hours Training 0n agile practicesDistribution of workUnavailability of Customer or Customer

Proxy

Page 12: Adapting Agile Principles in Distributed Software Development

12

Tools and techniques for agile distributed developmentImprove communication

Minimize the overhead of setting up a meeting (conference phone, projector, video conferencing)

Web cams and application sharing softwareInstant messenger for synchronous

communicationE-mail for asynchronous communication

User contact visitsBring the whole team together sometimes

Page 13: Adapting Agile Principles in Distributed Software Development

13

Tools and techniques for agile distributed development (2)Team distribution

Use team representatives for large time zone interval

Scrum of scrumsDistribution of work regardless of locationMaintain valuable documentation

Provide user stories with use case diagramsVarious tools like issue tracker (e.g. Jira) PM

tools (e.g. Scrum works)

Page 14: Adapting Agile Principles in Distributed Software Development

14

Tools and techniques for agile distributed development (3)Focus on team coachingUse of tools

Social networking toolsCommunication tools: e-mails, instant

messengersConfiguration menagement toolsBug and issue tracker databasesKnowledge centers

Page 15: Adapting Agile Principles in Distributed Software Development

15

ConclusionWith distributed agile development it is possible to

tap into new global marketsmake best use of globally talentpotentially reduce costs

with support of mentioned tools and techniques.

Page 16: Adapting Agile Principles in Distributed Software Development

16

ReferencesS.V.Shrivastava, H.Date, "Distributed Agile Software

Development: A Review", JOURNAL OF COMPUTER SCIENCE AND ENGINEERING, VOLUME 1, ISSUE 1, MAY 2010

K.Sureshchandra, J.Shrinivasavadhani, "Adopting Agile in Distributed Development”, IEEE International Conference on Global Software Engineering , p.217-221, 2008.

A.M.Elhassan Hamid, "Upgrading Distributed Agile Development", INTERNATIONAL CONFERENCE ON COMPUTING, ELECTRICAL AND ELECTRONIC ENGINEERING (ICCEEE), 2013

M.Kajko-Mattsson, G.Azizyan, M.K.Magarian, "Classes of Distributed Agile Development Problems", 2010 Agile Conference

Page 17: Adapting Agile Principles in Distributed Software Development

17

Thank you