Distributed Development and Agile

Description

These slides are part of a session "Beyond Introductory Agile" at Quark Campus, Chandigarh.

Comments
Would you like to comment?

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

Presentation Transcript Presentation Transcript

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

Copyrights © 2009 authorGEN. All rights reserved.