making distributed agile work
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]