Distributed Development and Agile : Distributed Development and Agile Mayank gupta, GlobalLogic
Agenda : Agenda Food for thought
Agile – Does it work?
Distributed Agile – Issues and success factors
Distributed Scrum styles
How to keep the rhythm
Engineering solutions
Examples: IDX, SirsiDynix, StarSoft, GlobalLogic
Food for thought : Food for thought The question isn’t whether Agile can be applied to Distributed projects or not
It’s more!
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
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 Scrum Styles : Distributed Scrum Styles Type A: Isolated Scrums
Type B: Distributed Scrum of Scrums
Type C: Totally Integrated Scrums
How to keep the Rhythm : How to keep the Rhythm Daily Scrum Meeting
Adjust meeting time to meet all time zones
Write the answer of three scrum questions and distribute the answers by email before the Scrum meeting (overcomes language issues)
Local teams can have their separate standup meetings as well
Publish audio recording of meetings
Video conference between sites
Release/Sprint planning
Fly key people to one place (Release)
Share pictures of planning charts (Sprint)
All team members participating
Video conference between sites (Sprint)
Release/Sprint Review
One session for all teams
Web meeting application to share Demo and Presentation
All team members participating
Video conference between sites
It is all about planning : It is all about planning Team Structure
Key challenge: process management, work synchronization
Cross functional teams at all locations
Scrum masters at all locations
Use scrum of Scrum (SoS)
If number of teams are more (more than 10), use Scrum of Scrum of Scrum (SoSoS )
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
Break down User story into requirements
It is all about planning (Cont…) : It is all about planning (Cont…) Identifying dependencies
Unified planning meeting after each sprint planning
Scrum masters meeting to resolve dependencies
New distributed scrum teams
New scrum teams for Documentation, Integration and Validation can be formed
Documentation team participation in all planning meetings
Integration scrum team responsible for nightly build and automatic installation, participate in SoSoS forum and part of all planning meetings
Scrum team “validation” taking care of test and validation of the Cross suite user scenarios & engaging real customer in validation process
Pause : Pause Pause … Questions?
Creating an Integrated Tracker : Creating an Integrated Tracker Ability to properly derive test cases from raw requirements
All tasks need to be mapped, inter-linked, and driven by its priority
Writing use cases, test cases, code reviews, etc.
Requirement mapping also necessary for test results, defects, and code changes
Continuous Integration : Continuous Integration It is essential that code repository is centralized and unified tools are used
Sprint health check : Sprint health check
Product Dashboard as Information Radiator : Product Dashboard as Information Radiator Distributed Agile needs a common view assembling product engineering processes together
A Product Dashboard provides a holistic view of lifecycle
Reconciles information from requirement management, test case management, issue tracking system, etc.
No manual consolidation of information
Provides great transparency from all perspectives
Real-time visibility into the progress
Role-based dashboard boosts productivity of the distributed product teams
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
First Distributed scrum team : First Distributed scrum team IDX (now GE Healthcare) – 567 developers, many locations
IDX Web Team Scrum 1996-2000
– Burlington, VT
– Boston
– Seattle
Factors accelerating the IDX hyperproductive Distributed Scrum
– Scrum organizational pattern
– Engineering practices
– Daily meeting of distributed team
– Tools (direct connection to Microsoft development)
SirsiDynix & StarSoft : SirsiDynix & StarSoft SirsiDynix and StarSoft used Scrum in globally distributed environment
developing a Java application with over 1,000,000 lines of code.
a distributed team of 56 Scrum developers working from Provo, Utah; Waterloo, Canada; and St. Petersburg
At 15.3 function points per developer/month, this is one of the most productive projects ever documented.
How SirsiDynix & StarSoft did it? : How SirsiDynix & StarSoft did it? Daily Scrum meetings of all developers from multiple sites
Daily Scrum of Scrum meetings
Daily meetings of Product Owner team
Hourly automated builds from one central repository,
No distinction between developers at different sites on the same team
Seamless integration of XP practices like pair programming with Scrum.
GlobalLogic & Distributed Development : GlobalLogic & Distributed Development 21 GlobalLogic applies a unique method and platform for distributed software development, “GlobalLogic Velocity™”
“GlobalLogic Velocity™ is an Agile product engineering method supported by an innovative collaboration platform, software frameworks and reusable software objects that together help bring high quality software products to market faster and with less risk.“
Velocity Method is the GlobalLogic framework of processes, templates, and behaviors which optimizes communication and provides just enough structure to effectively manage distributed product engineering teams.
Velocity Platform is an integrated suite of tools and systems that aids Distributed Product Development by facilitating end-to-end collaboration and tracking of issues through Requirements Engineering, Iteration Planning and Release, Test Engineering, and Release Engineering.
Velocity Continuous Integration : Velocity Continuous Integration
Velocity Continuous Integration : Velocity Continuous Integration
Scrum is fun : Scrum is fun
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