Agile Processes and Distributed Projects: Dream or Nightmare? Instructor: Kevin Thompson, Ph.D., PMP, ACP, CSP 4100 E. Third Ave, Suite 205, Foster City, CA 94404 650-931-1651 www.cprime.com The leader in training and consulting for project management and agile development Outline 1. Overview of Agile Processes 2. The Scrum Process 3. The Distributed World 2 1
Outline 1. Overview of Agile Processes 2. The Scrum Process 3. The Distributed World 3 What is an Agile Process? In principle: Any process that adheres to the principles of the 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. Manifesto for Agile Software Development, www.agilemanifesto.org The concepts arose in software project management, BUT Change software to products or deliverables to apply more generally 4 2
Principles behind the Agile Manifesto 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 4. Business people and developers must work together daily throughout the project. 5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. 7. Working software is the primary measure of progress. 8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 9. Continuous attention to technical excellence and good design enhances agility. 10.Simplicity--the art of maximizing the amount of work not done--is essential. 11.The best architectures, requirements, and designs emerge from self-organizing teams. 12.At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. 5 Principles behind the Agile Manifesto 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 4. Business people and developers must work together daily throughout the project. 5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. 7. Working software is the primary measure of progress. 8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 9. Continuous attention to technical excellence and good design enhances agility. 10.Simplicity--the art of maximizing the amount of work not done--is essential. 11.The best architectures, requirements, and designs emerge from self-organizing teams. 12.At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. 6 3
Adaptive Spectrum Drives Process Selection All processes have their sweet spots Based on scope, effort uncertainty PREDICTIVE REACTIVE Predictive Processes Emphasize Efficiency Perform poorly when uncertainty is high Predictive Adaptive Reactive Plan-Driven Scrum Kanban Waterfall SDLC XP CBPM Adaptive processes Emphasize adaptability to rapid change Enable detailed planning The Agile Zone Reactive processes Don t require planning Handle unpredictable work well 7 Feedback Loops are Critical for Agile Processes 8 4
What Processes are Agile? In practice, these: Scrum Extreme Programming (XP) Kanban Commitment-Based Project Management (CBPM) Others DSDM, FDD, Crystal In practice, not these: Waterfall Software Development Lifecycle (SDLC) Rational Unified Process (RUP) Information Technology Infrastructure Library (ITIL) Is PMBOK Agile? Could be: It s a collection of practices (tools & techniques), not a process definition Not necessarily: Contains no explicitly agile content (up through V4) 9 Three Views of How Work Gets Done Plan-Driven Often phase-oriented, delivers results at the end SDLC, Waterfall, RUP, PERT, Critical Chain, Prince2 Agile with Planning Planning and execution are epicyclic, repeated at different scales for nested time horizons Scrum, XP, CBPM Agile without Planning Processes unpredictable requests efficiently, for types of work where planning is not possible or required Kanban 10 5
Linear Plan-Driven: Project Lifecycle Initiating Processes define, authorize initial scope Planning & Executing Processes alternate to completion Closing Processes deliver, review, shut down 11 Agile with Planning: Project Lifecycle Inception phase prepares for start of Scrum process Implementation phase plans, executes, and delivers for multiple time scales Termination phase shuts down 12 6
Unplanned Agile Project: Kanban Lifecycle Work items arrive in a steady stream, are prioritized daily Kanban (Signboard): Literally, a signal indicating that an action should be performed 13 Adaptability Expects the unexpected and adjusts gracefully Inspect and Adapt Collaboration Continuous Improvement Agile Essentials Team members self-organize Members define, allocate tasks Self improvement through reflection, learning from past experience Stable Team membership increases domain knowledge and productivity over time 14 7
Outline 1. Overview of Agile Processes 2. The Scrum Process 3. The Distributed World 15 Scrum: Our Reference Process Scrum Arose in software engineering Not tied to any subject domain Planning is iterative Execution is iterative 16 8
Select Process: Scrum Summary Product Owner provides ranked requirements, as short narrative descriptions ( Stories ), or bug-fix requests. Set of unscheduled requirements is the Product Backlog. Each requirement is a Product Backlog Item (PBI). Small Teams (3 9 people) work in short Sprints (2 4 weeks) to implement stories in rank order. Requirements frozen when Sprint starts no change requests allowed! Teams self-organize to best apply member skill sets (coding, test development, testing, etc.). ScrumMaster does not assign tasks SM focuses on planning, tracking, mentoring, and issue resolution Schedule rules: Don t extend Sprint to finish incomplete Stories 17 The Defining Characteristics of Scrum Three roles Team ScrumMaster Product Owner Three artifacts Product Backlog Sprint Backlog Burndown chart Five Time Boxes Sprint Sprint Planning Daily Scrum Meeting Sprint Review (Demo) Meeting Retrospective Meeting 18 9
The Time Boxes of Scrum Sprint: 2 4 weeks Implement requirements in rank order Sprint Planning Meeting: < 8 hrs Plan work to be done in Sprint Daily Stand-Up Meeting: 15 min Review status and issues Sprint Review Meeting: 1 hour Product Owner reviews deliverables Retrospective Meeting: 1 hour Learn from experience 19 Sample Two-Week Sprint 20 10
Sprint (Each Day s Major Activities) Purpose: Implement PBIs in Sprint Backlog ScrumMaster monitors work, facilitates issue resolution Team members swarm to implement PBIs in rank order Ask Product Owner to clarify requirements Ask ScrumMaster to resolve issues the Team cannot resolve Team members update status of each task On starting, finishing, revising to-do effort, Team members don t start PBIs they can t finish in Sprint Maintain discipline of finishing what is started! 21 Sprint Planning Meeting Purpose: Assign PBIs to Sprint Backlog ScrumMaster facilitates, enforces selected time box E.g., 1 hour, if Team has reviewed PBIs carefully in advance Agenda For each Product Backlog Item (PBI), in rank order 1. ScrumMaster reads PBI to Team 2. Team discusses, asks Product Owner to clarify details 3. ScrumMaster facilitates & records Planning Poker estimation 4. ScrumMaster adds PBI to Sprint Backlog 5. Planning is finished when Sprint Backlog is filled to capacity After: Team creates Task Breakdowns for Sprint Backlog items Revise scope of Sprint Backlog based on Task estimates 22 11
Daily Scrum Meeting Purpose: Promote common understanding of Sprint status, and identify issues to be resolved ScrumMaster facilitates, enforces 15-minute time box Team members, ScrumMaster, Product Owner attend Agenda 1. ScrumMaster shows burndown chart, describes progress 2. Each Team member describes What I ve done since the last Daily Stand-Up meeting What I plan to do before the next Daily Stand-Up meeting What issues I m facing that I need help to resolve In meeting: Decide who will collaborate to resolve each issue after the meeting ( sidebar discussions ) 23 Sprint Review Meeting Purpose: Confirm acceptability of implementations ScrumMaster facilitates, enforces selected time box Agenda 1. Team demonstrates finished PBIs to the Product Owner Team members decide who will do the demonstrations. One person does all; round-robin style; etc. 2. Product Owner provides final decision on whether implementations are acceptable for release If not, then they are not released Should be rare, since PO monitors & evaluates throughout Sprint. After: Product Owner writes Stories for changes to implementations 24 12
Retrospective Meeting Purpose: Learn from experience, and improve ScrumMaster facilitates, records, enforces time box Say, 60 minutes total: 30 for recording, 30 for discussion Agenda 1. Review status of work items from previous Retrospective 2. Team members, Product Owner, ScrumMaster answer What went well, that we should do again? What needs improvement? What specific improvements should we make? 3. Specify follow-up actions 1. Prioritize improvements 2. Select top few to address 3. Select owners to drive improvements 25 Agile Collaboration by Swarming How many people can work on Story #1? They swarm on #1. How many people can work on Story #2? They swarm on #2. How many people can 26 13
Outline 1. Overview of Agile Processes 2. The Scrum Process 3. The Distributed World 27 Agile Manifesto Principles Affected by Geographic Distribution Business people and developers must work together daily throughout the project. The most efficient and effective method of conveying information to and within a development team is faceto-face conversation. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 28 14
Why Co-Location is Preferred Members work together easily throughout day Proximity encourages interaction Information propagates rapidly Communication is Osmotic Members absorb information from questions, answers in background Members can chime in if they have something to contribute Agile projects favor in-person communication over documentation Co-location encourages and enables good communication Distribution impairs it, requires more documentation 29 Distributed Teams: Best Case Scrum Teams are distributed Scrum Team members are co-located per Team Compared to total colocation Intra-Team communication is the same Cross-Team communication somewhat more difficult, but not hard Cross-Team work synced via Scrum of Scrums meetings 30 15
How to Implement Cross-Team Requirements Synchronize with Scrum of Scrums meetings Purpose: Identify & address cross-team issues Frequency: As needed (daily, weekly, ) Participants: One from each team Team Member, ScrumMaster Facilitator Agenda: Each person describes What my Team is doing that may affect other Teams What issues my Team needs help to resolve Resolve issues in meeting, if possible Identify follow-up actions and owners Diagram by Clinton Keith, www.gamasutra.com 31 Distributed Teams: Other Cases Members of Scrum Team are distributed Compared to colocation Communication latency increases with fragmentation, time-zone separation Productivity decreases Non-overlapping time zones make collaboration difficult 32 16
Working Time Sprint Planning Daily Stand-Up Best Practices for Meetings Sprint Review Retrospective Comment Full overlap All attend All attend All attend All attend Co-located Full overlap All attend All attend All attend All attend Distributed Partial overlap All attend All attend All attend All attend Adjacent All attend All attend All attend All attend Far apart All attend Sub-groups, SMPs meet. SMPs, SM provide all findings to full Team. Rotate demo to PO among subgroups Sub-groups, SMPs meet. SMPs, SM provide all findings to full Team. One SM proxy (SMP) per subgroup Full Team meets twice / week Sub-group nearest to PO demos 33 Case Study: S Corp. Three Teams ScrumMaster in CA Product Owner in PA 1/3 Team members in CA 1/3 Team members on the East Coast 1/3 Team members in Shanghai, China Adaptations One proxy for ScrumMaster in Shanghai 15 min Daily Stand-Ups Twice-weekly 30-60 minute meeting/team Sprint Planning meetings One for US, one for Shanghai Sprint Retrospectives One for US, one for Shanghai ScrumMaster in all meetings 34 17
Case Study: Z Corp. SixTeams ScrumMaster in CA 3 Product Owners in CA 1/6 Team members in CA 5/6 Team members in Beijing, China Adaptations One proxy for ScrumMaster in Beijing Six 15 min Daily Stand-Ups Sun-Thur, 8-10 PM PST Sprint Planning meetings One per Team, staggered so POs can attend all, with POs facilitating Task Breakdowns Drafted in Beijing, reviewed in CA Sprint Retrospectives One for all in CA, one for all in Beijing ScrumMaster in all meetings 35 Case Study: Xebia Corp (Jeff Sutherland) Three Distributed Teams Across The Netherlands & India (3 hrs separation) One Product Owner Three ScrumMasters Adaptations Start small, then grow Start co-located team, members from all locations Later seed distributed teams with experienced members All Scrum meetings Video-conferenced via Skype, except for Sprint Review meeting Held in The Netherlands 36 18
Best Practices for Engaging & Aligning People 1. Start small and co-located Members come from all locations Work together for 3 Sprints 2. Spread the wealth Seed new Teams in other locations with seasoned members 3. Understand cultural differences ScrumMasters provide safe environment, encouragement to enable people from hierarchical cultures to adjust to Agile culture of egalitarian collaboration 4. Build personal relationships face to face Encourage travel to other offices Socialize with the visitors 5. Use video in all meetings 37 Closing Thoughts Distributed Agile projects are not desirable Distributed Agile projects are possible Technology and common sense adaptations reduce but do not eliminate pain 38 19
The Most Important Thing to Remember The process exists to help the people succeed Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 39 20