making distributed agile work

Upload: kivindra-de-silva

Post on 07-Apr-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 Making Distributed Agile Work

    1/32

    Making Distributed Agile Work

    Mike Schimmel

    ALM Solution Architect

    MicrosoftDate: October 20th, 2008

  • 8/3/2019 Making Distributed Agile Work

    2/32

    Agenda Introduction

    Presenter

    Goals of Workshop

    Background Characteristics of Distributed Development

    Problems identified in distributed development projects

    Problems identified in transition from Legacy Waterfall toAgile/Iterative

    Characteristics of well running agile teams

    Characteristics of not-so-well running agile teams Solutions To Distributed Agility Problems

    Summary

  • 8/3/2019 Making Distributed Agile Work

    3/32

    Agenda

    Introduction Presenter

    Goals of Workshop

    Background Characteristics of Distributed Development

    Problems identified in distributed development projects

    Problems identified in transition from Legacy Waterfall toAgile/Iterative

    Characteristics of well running agile teams

    Characteristics of not-so-well running agile teams Solutions To Distributed Agility Problems

    Summary

  • 8/3/2019 Making Distributed Agile Work

    4/32

    Introduction

    Mike Schimmel

    ALM Solution Architect Microsoft Corportation

    20+ Years Software Development / ManagementSpecial Interests

    Workshop Goals

    Identify Possible Solutions to Distributed Agility

    Problems

    Your Goals

  • 8/3/2019 Making Distributed Agile Work

    5/32

    Agenda

    Introduction Presenter

    Goals of Workshop

    Background Characteristics of Distributed Development

    Problems identified in distributed development projects

    Problems identified in transition from Legacy Waterfall toAgile/Iterative

    Characteristics of well running agile teams

    Characteristics of not-so-well running agile teams

    Solutions To Distributed Agility Problems

    Summary

  • 8/3/2019 Making Distributed Agile Work

    6/32

    Background

    In the beginning

    Single developers worked on dumb terminals with a large central processor

    Project data was central Workers were co-located

    Communication was easy

  • 8/3/2019 Making Distributed Agile Work

    7/32

    Background

    Distributed Within an Office

    Single developers worked on their own work stations

    Problems with data coordination

    solved by:

    Version Control

    Increased Communication

    Careful Merge Management

    Centralized Data

    Benefits: More Autonomous

    More Individual Productivity

  • 8/3/2019 Making Distributed Agile Work

    8/32

    What is Happening?

    Companies Want to Go Agile

    CIOs have heard great things

    Want / Need to Deliver Faster with Higher Quality

    Companies Want to Go Global

    CIOs have heard great things

    Want / Need to Lower Costs of IT or App. Dev.

  • 8/3/2019 Making Distributed Agile Work

    9/32

    Background

    Distributed Globally

    Developers all over the world to save money due to low billing rates

  • 8/3/2019 Making Distributed Agile Work

    10/32

    Global Distribution Characteristics

    Global Distribution

    Benefits:Save Costs

    Continuous Work (24 Hours)

    Problems:

    CommunicationLanguage

    Requirements

    Silos Poor Hand-Offs

    CultureProject Data Synchronization

    Poor Application Quality

  • 8/3/2019 Making Distributed Agile Work

    11/32

    Challenges Going from Waterfall to Agile

    Challenge What Happens?

    Old Dog, New Tricks Long time

    developers dont like change

    PMP / Executive Need for

    Milestone

    How do we start?

    Find one flaw, give up.

    Sponsorship at risk.

    Misinterpret Methods

    Dont just try agile, but trydistribution at same time

    Mass, Globally Distributed

    Confusion

    Results:

    Lots of money lost, large decrease in productivity, lowered morale, and

    exodus from company

  • 8/3/2019 Making Distributed Agile Work

    12/32

    Agenda

    Introduction Presenter

    Goals of Workshop

    Background

    Characteristics of Distributed Development

    Problems identified in distributed development projects

    Problems identified in transition from Legacy Waterfall toAgile/Iterative

    Characteristics of well running agile teams

    Characteristics of not-so-well running agile teams

    Solutions To Distributed Agility Problems

    Summary

  • 8/3/2019 Making Distributed Agile Work

    13/32

    So, we use Agile Methods Scrum

    Rapidly Gaining Acceptance

    Very productive

    Minimizes Unnecessary Work

    Focus on the source of value thoseDOING the work

    Why Scrum?

    Provides Good Governance, Controls,and Organization for Mitigating Risk

    Well-Documented, Popular, andSimple

    Industry Guidance All Over thePlace

    Simple Easy to Learn

  • 8/3/2019 Making Distributed Agile Work

    14/32

    Characteristics of a Well Running Team

    Outstanding Developers Cross Functional Rock

    Stars!

    Solid Architect Strong Personalities Overcome Customer

    Customer is part of team

    Test Driven Development A Religion

    Automated Build Mgt., Release Mgt., and Testing

    Paired Programming Informal Code Review

  • 8/3/2019 Making Distributed Agile Work

    15/32

    Focus on Evolving Small, Manageable Stories; Not

    Complex Use Cases

    Didnt Kill the Tracker Automated the Task Cards

    Guerilla Testing

    Co-Located Team!

    Characteristics of a Well Running Team

  • 8/3/2019 Making Distributed Agile Work

    16/32

    Agenda

    Introduction Presenter

    Goals of Workshop

    Background

    Characteristics of Distributed Development

    Problems identified in distributed development projects

    Problems identified in transition from Legacy Waterfall toAgile/Iterative

    Characteristics of well running agile teams

    Characteristics of not-so-well running agile teams

    Solutions To Distributed Agility Problems

    Summary

  • 8/3/2019 Making Distributed Agile Work

    17/32

    A NOTSo Well Running Team

    Not Co-Located Distributed across the globe

    Developers are NOT Rock Stars! One Trick Ponys

    Low Skill and Desire (i.e. Wont do TDD)

    Project Functions are NOT Co-Located Developers in one location, testers another, business

    stakeholders yet another Dependencies on other projects that do not

    practice the same methods

    Part Time Commitment from Critical Resources (i.e.Architect)

    Lack of test and build automation

  • 8/3/2019 Making Distributed Agile Work

    18/32

    So, Whats the Reality

    Teams dont know how to start

    Distribution is going to happen

    Not all team members can be Rock Stars

    Some customers are not 100% Available

    Functions will be isolated Dependencies on other projects will exist

  • 8/3/2019 Making Distributed Agile Work

    19/32

    Agenda

    Introduction Presenter

    Goals of Workshop

    Background Characteristics of Distributed Development

    Problems identified in distributed development projects

    Problems identified in transition from Legacy Waterfall toAgile/Iterative

    Characteristics of well running agile teams

    Characteristics of not-so-well running agile teams

    Solutions To Distributed Agility Problems

    Summary

  • 8/3/2019 Making Distributed Agile Work

    20/32

    Solutions: Starting to Go Agile

    Start with 30-Day Scrum

    Get Good Agile Experience

    Hire a Scrum Master / Agile Coach 50% Team Should Have Agile Experience Good

    Master/Journey Relationship

    Incrementally Adopt the Practice small team first,followed by more and more

    Automation Build Mgt., Release Mgt., Unit Testing,

    Build Verification Testing Use Work Flow and Work Item automation for Story

    Cards and Tasks

    Start with 30-Day Scrum

    Get Good Agile Experience

    Hire a Scrum Master / Agile

    Coach

    50% Team Should Have Agile

    Experience Good

    Master/Journey Relationship

    Incrementally Adopt the Practice

    small team first, followed by

    more and more

    Automation Build Mgt.,

    Release Mgt., Unit Testing, Build

    Verification Testing Use Work Flow and Work Item

    automation for Story Cards and

    Tasks

    Is this you?

    Or this?

  • 8/3/2019 Making Distributed Agile Work

    21/32

    Starting to Go Agile: Brainstorm

    Audience Participation

  • 8/3/2019 Making Distributed Agile Work

    22/32

    Solutions: Distribution

    Complete functional teamisolated by application domain

    Scrum Master

    Team Member Skills: Business

    Domain SME, Developer, TestManager/Engineer, DBA,

    Network Specialty, Application

    Architecture, Etc.

    Communications andTechnology

    Phone access to

    each site

    E-Mail

    Instant Messaging

    Video Conferencing

    Strictly Enforced Daily Stand-up

    More Documentation

    (yea, I know, but graphics

    improve language barriers)

    Models of Scenarios /

    Component Interactions

    Enterprise Architecture

    Automation

    Common Repository (WIKI)

    Source Code Management with

    robust branching, merging, and

    workspace isolation

    Work Flow / Work Items

    Management

    Rotate Resources

  • 8/3/2019 Making Distributed Agile Work

    23/32

    Distribution: Brainstorm

    Audience Participation

  • 8/3/2019 Making Distributed Agile Work

    24/32

    At Best, Were Aging

    Rock Stars

    Solutions: Were Not Rock Stars

    Hire Experience to the Team Scrum Coach

    Application Architect

    Test Automation Lead

    Automated Work Flow and

    Work Items

    Enforce Accountability

    Small Expectations Commit to small amounts of work

    Start with low compexities

    Show Early Success

    Start In Single Location, thenExpand Globally

    Pair Programming Approach toAll Tasks

    Analysis

    Functional / System Test

    Everything is Shared

    Informal Training Sessions

    Brown Bag Seminars

    After Hours Workshops

    Make Process Guidance

    Available

    WIKI

    Project Portal

  • 8/3/2019 Making Distributed Agile Work

    25/32

    Not Rock Stars: Brainstorm

    Audience Participation

  • 8/3/2019 Making Distributed Agile Work

    26/32

    Solutions: Customer Accessibility

    Frequent, I Mean FREQUENT Communication Daily planned conference calls

    Unplanned access They NEED to answer the phone

    Meet me half way Go to them

    Get them to come to you once in a while

    Get Creative (see picture)

  • 8/3/2019 Making Distributed Agile Work

    27/32

    Customer Accessibility: Brainstorm

    Audience Participation

  • 8/3/2019 Making Distributed Agile Work

    28/32

    Solutions: Dependencies on Projects

    Concede Some Deliverables due to waterfalldependencies

    Align with releases

    Align with interim milestones

  • 8/3/2019 Making Distributed Agile Work

    29/32

    Project Dependencies: Brainstorm

    Audience Participation

  • 8/3/2019 Making Distributed Agile Work

    30/32

    Agenda

    Introduction Presenter

    Goals of Workshop

    Background Characteristics of Distributed Development

    Problems identified in distributed development projects

    Problems identified in transition from Legacy Waterfall toAgile/Iterative

    Characteristics of well running agile teams

    Characteristics of not-so-well running agile teams

    Solutions To Distributed Agility Problems

    Summary

  • 8/3/2019 Making Distributed Agile Work

    31/32

    Summary

    Distributed Agile Can Work

    Requirements:

    Willing to Learn

    Willing to be Creative

    Automation Tests, Builds, Releases

    Automation Work Flow, Work Items Frequent, Open, Communication Supported by

    Technology

    Experience and Coaching

  • 8/3/2019 Making Distributed Agile Work

    32/32

    Thank You!

    Distributed Agile:Make it Real

    Mike [email protected]