2. Agenda
What is Distributed Software Development (DSD)?
Why DSD?
Problems with DSD
Agile Practices
Combining DSD with agile methods
Benefits
Challenges
Tools and techniques
2
3. What is Distributed Software
Development (DSD)?
Software is developed in a multi-site, multicultural,
globally distributed environment.
3
4. Why DSD?
Lower cost
Access to skilled resources
Having round-the clock development
Minimize risk in case of natural catastrophes
4
5. Problems with DSD
Strategic issues
Cultural issues
Inadequate communication
Knowledge management
Project and process management issues
Technical issues
Risk management
5
6. Agile Practices
Agile 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
6
7. Combining DSD with Agile Methods
Most 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.
7
9. Benefits
Increased visibility of project status via short
continuous iterations
Continuous 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
9
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.
10
11. Challenges
Agile teams rely on intense person to person
communication
Documentation
Pair programming
Different working hours
Training 0n agile practices
Distribution of work
Unavailability of Customer or Customer Proxy
11
12. Tools and techniques for agile distributed
development
Improve communication
Minimize the overhead of setting up a meeting
(conference phone, projector, video conferencing)
Web cams and application sharing software
Instant messenger for synchronous communication
E-mail for asynchronous communication
User contact visits
Bring the whole team together sometimes
12
13. Tools and techniques for agile distributed
development (2)
Team distribution
Use team representatives for large time zone interval
Scrum of scrums
Distribution of work regardless of location
Maintain valuable documentation
Provide user stories with use case diagrams
Various tools like issue tracker (e.g. Jira) PM tools (e.g.
Scrum works)
13
14. Tools and techniques for agile distributed
development (3)
Focus on team coaching
Use of tools
Social networking tools
Communication tools: e-mails, instant messengers
Configuration menagement tools
Bug and issue tracker databases
Knowledge centers
14
15. Conclusion
With distributed agile development it is possible to
tap into new global markets
make best use of globally talent
potentially reduce costs
with support of mentioned tools and techniques.
15
16. References
S.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
16