Distributed Development & Agile

Description

Facing the Challenges of Distributed Development using Agile

Comments
Would you like to comment?

Sign In if already a member, or Join Now for a free account.

Presentation Transcript Presentation Transcript

Facing the Challenges of Distributed Development using Agile : Facing the Challenges of Distributed Development using Agile Mayank gupta

Time of Introduction : Time of Introduction Working with GlobalLogic India Practicing Agile for last 3 years Certified Scrum Master (CSM), OCP, ISTQB Published Articles in Scrum Alliance & CM Journal Blog - http://thought-reader.blogspot.com

Agenda : Agenda Setting the stage Food for thought Agile – Does it work? Agile Manifesto Distributed Agile – Issues and success factors Distributed Development – How? Distributed Scrum Styles, How to maintain the rhythm Engineering solution Video conference

Setting the stage : Setting the stage Today more than 80% of the software development is done by the distributed teams. Practicing Distributed Development is not easy Teams are not able to communicate effectively Can we ignore the positives of distributed development? cost savings, 24/7 availability of development teams etc, skills utilization

Food for thought : Food for thought The question isn’t whether Agile can be applied to Distributed projects or not It’s rather! Can Distributed projects afford not to apply Agile practices?

Agile – Does it work? : Agile – Does it work? Everybody says that Agile works for ideal scenario Small teams Collocated teams When customer is available to team all the time What about real scenario? Big teams Globally distributed teams Large projects When real customer is not available to the team

Agile Manifesto : Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Distributed Agile : Distributed Agile Large/distributed projects are very high risk Standish chaos report 31.1% projects get cancelled before they get completed 52.7% projects get completed but cost almost double of their original estimates 16.2% projects are completed on time on budget Today's prevailing trend – geographical diversification Exponential Demand for complex functionality along with ease of use, scalability, reliability, and maintainability

Issues in Distributed development : Issues in Distributed development Strategic: Difficult leveraging available resources, best practices are often deemed proprietary, time consuming and difficult to maintain. Project and process management: Difficulty synchronizing work between distributed sites. Communication: Lack of effective communication mechanisms. Cultural: Conflicting behaviors, processes, and technologies. Technical: Incompatible data formats, schemas, and standards. Security: Ensuring electronic transmission confidentiality and privacy.

Success Factors – Distributed Agile : Success Factors – Distributed Agile Success of Distributed agile substantially dependents on real-time collaboration Avoid depending heavily on the use of E-mails for knowledge sharing! Wiki and Collaboration systems gaining popularity IM tools, NetMeeting, and video conferencing enable effective collaboration Robust and Scalable engineering platform to enable: Real-time Collaboration and transparency Re-usability and Refactoring Collective Code Ownership Continuous Integration ……….etc.

Distributed Agile – How? : Distributed Agile – How? Distributed Scrum Styles Type A: Isolated Scrums Type B: Distributed Scrum of Scrums Type C: Totally Integrated Scrums Key Practices Daily Scrum Meeting (all time zones) Release/Sprint Planning Release/Sprint Review

Planning Game : Planning Game Team Structure Cross functional teams at all locations Scrum masters at all locations Scrum Masters reporting daily to SoS and to SoSoS Proxy product owners Architects playing the role of proxy product owners Link between product owner and delivery team Identifying dependencies Unified planning meeting after each sprint planning New distributed scrum teams New scrum teams for Documentation, Integration and Validation can be formed

Distributed Development – Engineering Solution : Distributed Development – Engineering Solution Have a common, Integrated Tracker Integrated with Version control and Build tools Continuous Integration centralized code repository hourly/nightly builds are in place Automated Deployment Automated unit/regression testing Sprint Health check By the use of a common dashboard Passed vs. Failed test cases for each build Code Review/Code Coverage Statistics Real time visibility into the sprint progress

Video Conference : Video Conference Biggest contributing factor in distributed development Brings meaningful and effective communication Better video conferencing tools would decrease the need of travelling Use video conference for Daily scrum meetings Release planning meeting Iteration planning meeting Sprint Review

Conclusion : Conclusion Agile would help you to actually address the problems created by the distance instead of making them worse It is extremely easy to integrate Scrum with XP practices even on large distributed teams. Meaningful communication and collaboration are the key factors One Scrum meeting a day is necessary which should include all team members across geographies. This would improve productivity, reduce project risk, and enhance software quality.

References : References Distributed Scrum: Agile Project Management with Outsourced Development Teams At Agile 2006 International conference By Jeff Sutherland, Anton Viktorov, Jack Blount

Slide 17 : Thank You Mayank Gupta mayankgupta_in@yahoo.com

Copyrights © 2009 authorGEN. All rights reserved.