Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Adapting Agile Principles in Distributed Software Development


Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Adapting Agile Principles in Distributed Software Development

  1. 1. Esin Karaman SWE586 Boğaziçi University 1
  2. 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. 3. What is Distributed Software Development (DSD)? Software is developed in a multi-site, multicultural, globally distributed environment. 3
  4. 4. Why DSD?  Lower cost  Access to skilled resources  Having round-the clock development  Minimize risk in case of natural catastrophes 4
  5. 5. Problems with DSD  Strategic issues  Cultural issues  Inadequate communication  Knowledge management  Project and process management issues  Technical issues  Risk management 5
  6. 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. 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
  8. 8. Globally distributed agile teams 8
  9. 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. 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. 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. 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. 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. 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. 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. 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
  17. 17. Thank you 17