More Related Content


Distributed Agile, What Types of Agile to use webinar presentation by Anna Obukhova

  1. January 30, 2015 Distributed Agile, what types of Agile to use. Anna Obukhova, Project Manager
  2. 2 Great to meet you! My name is Anna Obukhova More than 10 years in Software development, in Agile from 2004, Agile Project Manager from 2005. Managed Agile projects from 7 to 40 members, several projects simultaneously, now consulting PM in the 60 project Agile program. Participating as SME in в Agile Center of Excellence in Exigen Services My last presentations - Agile Days 2010 (SPB), SECR 2010 (Moscow).
  3. 3 Agenda  Agile – the distributed problem  What is Agile in Exigen Services  Why we are forced to be distributed  Distribution Factors  Calculate your distribution score  What is different when you have high distribution score  Examples of high-score team structure  Recommendations
  4. 4 Check understanding– what is Agile Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.  In other words, any Agile methodology should provide for – Iterative development style; – Early and frequent delivery of working software; – Strategy for embracing changing requirements; – Close and friendly collaboration between team members; – Team structure leading to self-organization.
  5. 5 Perfectly suited for 1 location Citation from Agile resources:  Agile methods emphasize face-to-face communication over written documents when the team is all in the same location.  Most agile teams work in a single open office which facilitates such communication.  Team size is typically small (5-9 people) to simplify team communication and team collaboration. Agile and distributed development seem to be at odds with each other. One is about close communication and short feedback loops, the other is about being effective with people in a different location.
  6. 6 What I will mean by Agile in Exigen Services In Exigen Services Agile generally means:  SCRUM as management framework  eXtreme Programming as engineering practices  Kanban structure to make process smoother
  7. 7 eXtreme Programming - Ideas  Iterations (can have changes inside)  Perfect Hours/ Team velocity/Load Factor  User Stories  Pair programming  Unit Tests  Shared code ownership  Nothing in advance  Keep it simple  Continuous Integration  Continuous Refactoring  Communication inside team and with customer/ Standups  Fast reaction & flexibility instead of planning
  8. 8 eXtreme Programming - Limitations  Very big teams  Strongly documented projects  Distributed teams  Weak customer support
  9. 9 SCRUM - management framework  Sprints (no changes inside)  Scrum Master/Product Owner/Team  Meetings (Pre-Planning, Planning, Daily Scrum, Demo, Retro)  Product Backlog/Sprint Backlog/Planning Poker  Stories with Acceptance Tests with Business Priority
  10. 10 What is Kanban Kanban it is a scheduling system that tells you what to produce, when to produce it, and how much to produce. Limit WIP (work in progress) – assign explicit limits to how many items may be in progress at each workflow state. Keep track on the board that you don’t have process bottlenecks.
  11. 11 Why we start being distributed?  Outsourcing to Low-Cost departments in one company  Outsourcing to another company  Follow the Sun model  Merges and Acquisitions - integrate products  Lack of resources  Work from Home
  12. 12 Factor 1: Physical distribution 1. Collocated 2. Collocated Part-Time 3. Distributed with Overlapping Work Hours 4. Distributed with No Overlapping Work Hours
  13. 13 Factor 2: Logical team organization 1. Isolated Scrum 2. Distributed Scrum of Scrums 3. Totally Integrated Scrum 4. Flexible Scrum
  14. 14 Factor 3: Project size 1. 1 Scrum Team - <10 members 2. 2 Scrum Teams - < 17 members 3. > 2 Scrum Teams - > 17 members
  15. 15 Factor 4: Product organization 1. > 1 products independent or using each other 2. 1 product – several integrated modules 3. 1 product with 1 piece of functionality or highly integrated modules
  16. 16 …. 4*4*3*3 = 144 Max144 different SCRUM project organizations depending on these conditions. The higher level each condition is, the more difficult project is. Lowest Distribution Score is 4 (1+1+1+1) = Collocated Isolated Small 1product). Ideal for XP and SCRUM, nice, productive, a lot of fun. Score 5-8 is normal for offshore development. Highest is 14 (4+4+3+3) Score = Flexible SCRUM, 1piece, distributed with no overlapped hours, team >20 members: project will not survive without special conditions or will have awful communication overhead.
  17. 17 We’ll discuss  2 and more teams (17 and more)  Distributed with Overlapped working hours  All levels of team logical distribution  All types of product integration level
  18. 18 When you have Distributed teams  New Roles, management overhead – Project manager (not Scrum Master) – Architect (Chief Tech Lead) – Proxy Product Owner (Analyst)  More e-mails and documentation – Self documented code may be not enough – Handover architectural documents – Reports on progress and impediments – Sub team and general Burn-Down  Less Shared Code ownership  Mini Demos
  19. 19 When you have Distributed teams  Scrum of Scrums  Horizontal communication of Peers – Scrum Masters/Chief SM (PM) – Tech Leads/Architect – Test Leads/Project Test Lead – Proxy Product Owners/Chief Product Owner  Dependency management – Code – Resources – People – Time
  20. 20 Don’t forget communication tools  Continuous integration/build automation  Team collaboration/task/bug tracker/report builder (Jira, TFS)  Meeting culture/Scrum Meetings/Sprint Pulse  Skype/Video facilities  Webex/Screen sharing  Airplane  Beer
  21. 21 Totally Integrated Example
  22. 22 Flexible Scrum Example
  23. 23 So… if you face distributed one  Max attention to communication, visual, personal  More beer if necessary, start with team building  Know your type of Distributed Agile, plan additional roles  Use Kanban principle to balance the load and avoid the bottlenecks on specific roles  Use Sprint Pulse to manage the meeting and communication overhead level and team communication  Peers speak with peers, is your SMs do not talk to each other – you are in trouble  Calculate the Load Factor – it will be different from type to type
  24. 24 Also…try to low the distribution score  Try to make your cumulative Agile distribution score as low as possible - avoid unnecessary distribution - define independent modules - Increase overlapping hours - think of smaller team - isolate Scrum where possible - any level raise treat and calculate as risk for the project And…know and practice Agile from beginning to end, better practice lower distribution level Agile before (by you or get expertise in your company).
  25. 25 Thank you. Question time.

Editor's Notes

  1. SCRUM is a framework for Agile Project management Scrum is based on effective, small teams working in an interdependent manner to achieve specific yet flexible agendas. As decisions are based on real-time information, the teams must be self sufficient, have carefully defined responsibilities, and exhibit excellent communication skills.