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