rescuing a troubled project with agile - softwarevalue.com...•self organizing –no titles...
TRANSCRIPT
Measure. Optimize. Deliver.
Phone +1.610.644.2856
Rescuing a Troubled Project
with Agile
Pat Eglin, Agile Coach
Tom Cagley, CFPS, Agile Practice Lead
©2013 David Consulting Group
Troubled Projects
• Is the project really in trouble?
– Tolerances
• Budget
• Calendar
• Quality
• Satisfaction
• Incompatibilities
1
Ok Disaster
©2013 David Consulting Group
Assessing Typical Sources of Problems
• Poor Planning
– Lack of Correct Resources
• Poor Scope Management
– Scope Creep
– Scope Churn
– Building the Wrong Thing
• Not Managed Well
– Wrong People Doing The Right Things
• Poor Communications
– Lack of Involvement
• Poor Quality
– Trade-offs
– Defects Dominating
2
©2013 David Consulting Group
Turn Around or Reset?
• Is there a coherent vision of the project’s goal?
– No? Reset.
• Does an external estimate to complete indicate
humans can actually deliver?
– No? Reset.
• Can the organization afford what is required to
deliver?
– No? Reset.
3
Ok Disaster Turn
Around
©2013 David Consulting Group
Why Agile
4
“Agile projects are successful three times
more often than non-Agile projects.”
- 2011 CHAOS Manifesto from the Standish Group
• Agile enhances the team’s ability to
deliver through:
– Involving the whole team in planning and meeting
the business need
– Focuses on defining what is needed then
controlling the “backlog”
– Utilizing a structure that allows the team to control
their process to meet the environment
– Short cycles, constant feedback and close
engagement with the product owner
©2013 David Consulting Group
The Process
1. Assess The Project
– In trouble?
– Turn around or restart
2. Plan The Intervention
– Prep the teams
– Re-organize
– Decide who does what
3. JumpStart
4. Coach
5. Celebrate
5
©2013 David Consulting Group
Assess: The Project
6
Process:
• Satisfaction
• Change
Management
• SDLC
Model:
• CMMI
• IT-CMF
• Cobit
Quantitative:
• Dates
• Defects
• Cost
• Productivity
• Effort
• Budget
Quantitative and
Process assessment
techniques compared
to implicit or explicit
tolerances are the
most common
troubled project
assessment
techniques.
©2013 David Consulting Group
Reorganize / Form Teams: Capability Teams
Capability Team
Product
Owner
Scrum
Master Business
Analyst
Tester
Tester
Developer
Developer
Developer
/ Tester
Value (Work) Flow
1. Form teams around organizational
capabilities
2. Team size of five to nine, including all
disciplines needed to deliver
3. Projects become less important than a
Flow of Value (Karl Scotland)
7
©2013 David Consulting Group
Three “Typical” Agile Team Roles
Scrum Master
• Coach and facilitator
• Impediment
remover
The Team
• Developers, Testers, Business
Analysts/SMEs, Architects,
Data Analysts, etc.
• Frame, design, build and test
Product Owner
• Provides business
acumen and
support
• Owns and
prioritizes
backlog, answers
questions and
makes decisions
PO
SM
8
©2013 David Consulting Group
Roles & Responsibilities – Key Participants
Product Owner
• Ensures backlog is visible to everyone;
• Makes decisions;
• Defines the product vision and the
features of the product;
• Prioritizes user stories according to
market value;
• Grooms the product backlog every
iteration;
• Accepts or rejects work results;
• Calls for and plans the releases;
• Involves customers, users, and other
stakeholders;
• Prepares for the product launch;
• Attends the Scrum meetings; and
• Collaborates with the team.
Scrum Master
• Responsible for ensuring that the Scrum
practices and rules are followed;
• Teaches the team by coaching and
leading;
• Helps the team understand and use self-
organization and cross functionality;
• Removes impediments;
• Ensures that the team is functional and
productive;
• Enables close cooperation across all roles
and functions; and
• Shields the team from external
interferences
9
©2013 David Consulting Group
Coach: Attributes and Roles
• Role includes helping the team(s) to use
Agile techniques via:
– Teaching
– Demonstrating
– Pressure
– Observation
• Attributes:
– High levels of emotional intelligence
– Serves in a coaching role only
– From outside the organization
– Provides objective guidance, without
personal or political considerations
– Is an Agile expert
– Has successfully run Agile projects
10
©2013 David Consulting Group
Outside Support Roles
• Business
– Provide subject matter expertise
– Support Product Owner
• IT Leads
– Provide standards
– Provide technical expertise
• Program Management
– Big picture coordination
– Remove external impediments
Frequent
support and
encouragement
11
©2013 David Consulting Group
Final Notes On The Team . . .
12
Saving a
problem
project
cannot be a
hobby!
• Cross functional
• Shares the knowledge
• Generally full-time members
• Membership only changes
between iterations
• Self organizing
– No titles
– Everyone will wear multiple hats (developers test)
– Roll-up your sleeves – see something that needs to be done?
Do it.
– Agree to disagree – everyone's commitment to team decision is
important
©2013 David Consulting Group
Why Agile JumpStart?
• The goal of the JumpStart Process in restarting or
turning around a project is to radically rearrange
how a project is run through an accelerated Agile
adoption. It provides an environment where
individual teams can quickly learn and apply Agile
methods to transform their projects. In other
words:
– One-on-one external coaching
– Show how by doing then transferring
knowledge
– Immediate process feedback
– Just-in-time training
– Coach withdraws as team gains confidence
13
©2013 David Consulting Group
Sample Iteration Zero Agenda – Restart
9. Release
Planning
11. Iteration
Planning
Estimate
User Story
Backlog &
Assign
Value
Develop
Release
Plan
Develop
Iteration
Plan
Monday 4 hours
Tuesday 4-8 hours
Wednesday 8 hours
Thursday 4 hours
Friday 4 hours
Create
User Story
Backlog
10. Demos and
Retrospectives
8. Story
Points &
Estimating
Create
Project
Vision &
Team
Charter
6. User
Story Value
5. Writing
User Stories
4. Building
the Product
Backlog
3. Agile
Roles
2. Project
Vision &
Charter
1. Agile
Values &
Principles &
Scrum
7. Test-driven
Development
14
©2013 David Consulting Group
Introduce Test-driven Development
During Rescue
Coding and Testing With TDD:
Starting with a test means that you have to describe what the story wants
to achieve before considering “how.” This focus helps to maintain the
right level of abstraction.
To ensure that you say what you mean:
1. Start with an English description
2. Write the code from the description
3. Translate the code back to English
4. Compare 3 to1
15
Pair Testers
or BAs with
Developers
when writing
tests!
TDD helps insure that as stories are written and accepted into the sprint,
they are understood (reducing defects and rework).
©2013 David Consulting Group
TDD: Simple Process
Steps:
1. Design: Figure out what you want to do
2. Test: Write a test to express the design
– It should FAIL
3. Implement: Write the code
4. Test again
– It should PASS
– Repeat writing code until the test passes
16
©2013 David Consulting Group
TDD: Limit Scope
Keep tests understandable and maintainable by limiting their scope.
Tests that are dozens of lines long mean the component being tested is
too large and needs to be broken up into smaller components.
• Every function should have:
– A single specific purpose
– If possible, a generally useful purpose
– A meaningful name
– A structure that is simple to understand
– An interface that is simple yet general enough
17
©2013 David Consulting Group
Iteration Zero – Expectations and Deliverables
• Expectations
– Time boxed
– Resources dedicated to Agile transformation during time allocated
• Deliverables
– Concise project vision
– Point-specific training
– User Story backlog; estimated and prioritized
– Initial release plan created
– Team charter
18
©2013 David Consulting Group
Agile Processes At A Glance
0
50
100
150
200
250
300
350
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41
Days
Burn - up Chart Example
Done
24 Hours
1-2 Weeks
Daily
Standup
Iteration
Backlog Product
Backlog
Continuous
Reporting
Demo
Iteration
Planning
Potentially
Shippable
Retrospective
19
©2013 David Consulting Group
Maximum
90 Minutes
Getting Started
Prior to the Agile JumpStart process:
• Confirm and get commitments on availability of key participants for
Iteration Zero and subsequent sprints
– Product Owner (PO)
– Scrum Master
– Team
– Coach
• Coach: Meet with POs and Scrum Master(s)
– Set expectations
– Review Agile overview, JumpStart, and role training
– Assess team dynamics
– Establish trust relationship
– Schedule JumpStart
20
©2013 David Consulting Group
Coach
Transformation Coaching
Coach as leader
transitions to Scrum
Master and Product
Owner as Leaders
Attributes of JumpStart Coach: • Aggressive Facilitator
• Leader
• High-Touch People Person
• 110% Self Starter Attributes of Scrum Master: • Aggressive Facilitator
• Owns the Scrum Process
• Leader
• High-Touch People Person
• 110% Self Starter
Transition Zone
Begins
Iteration 0 Iteration 1 Iteration 2
Attributes of Product Owner: • Understands the Business
• Owns the Product Backlog
• Leader
• High-Touch People Person
• 110% Self Starter
Scrum
Master
Product
Owner
Relative Levels
of Effort
21
©2013 David Consulting Group
Case - Restarting
Large Alternate Asset Management Company with a multiple vendor, technology and project environment
Large critical project, six project teams, four delivery dates missed, 80% complete for six months, reporting green status
One Program Manager and six Project Managers assigned, little business involvement
Significant requirements were still being discovered leading to four hour change management “debates”
Experienced-based estimation based on bottom-up task planning with large MS Project schedule
22
©2013 David Consulting Group
Case One
Large software development firm, hierarchical culture, and one very large project and many smaller
Mixed Scrum/XP (recent addition) and Plan-based project environment
Strenuous budgeting process with tax accruals
Significant discovery was required to define, design and develop the large project
Experienced-based estimation based on bottom-up task planning – questionable on the large project!
23
©2013 David Consulting Group
The Process
1. Assess The Project
– In trouble?
– Turn around or restart
2. Plan The Intervention
– Prep the teams
– Re-organize
– Decide who does what
3. JumpStart
4. Coach
5. Celebrate
24
©2013 David Consulting Group
The Answer, Part 1
25
Assessment
• Teams were too large
• Vendors were leading teams
• Project was not 80% done
• Functionality marked complete had not been tested
Impact
• Project managers were dismissed
• Teams were consolidated to 7 members each, with an internal Scrum master, business product owner and a coach
• Teams were co-located (3 geo-locations)
• All teams were tasked with rebuilding their backlogs
• A one week sprint zero was decided upon
©2013 David Consulting Group
The Answer, Part 2
26
JumpStart
• All teams went through a standard JumpStart
• Decided on team norms and completed Agile Chartering
• Introduced Test-driven Development (Light)
• Each team built an initial backlog
• Program Manager facilitated developing an initial release plan
• Each team planned and estimated their first iteration and publicly committed to the plan (as a team)
• Completed team building
Coaching
• External coach facilitated each team
• Hands-on training for product owners and Scrum masters
• Facilitated Scrum of Scrum and external weekly status meeting
• Evangelized and trained external stakeholders
©2013 David Consulting Group
Agile JumpStart Process Summary
• Agile JumpStart is designed to quickly and efficiently start the Agile
transformation with coaching and just-in-time training and workshops.
• Agile JumpStart intercepts a project as requirements or user stories are being
framed and coaches the team in how to use specific techniques as closely as
possible to the time the team needs to use the technique.
• An individual coach assigned to the project travels with the team through the
first few iterations until the team has learned to run.
• The process will begin with a ½ day session in which the basic principles and
techniques are reviewed and all participants agree upon their roles and
responsibilities.
• The “Agile JumpStart” projects will feed the process personnel in the standard
transformation path, specific process requirements and change management
data.
• Intimate, hands-on coaching will be required for three to four sprints before
entering a standard coaching stream.
27
©2013 David Consulting Group
Contact Us
Pat Eglin:
[email protected]; (484) 889-9474
Tom Cagley:
[email protected]; (440) 668-5717
http://www.davidconsultinggroup.com
28
@DavidConsultGrp
/DavidConsultGrp
/company/David-Consulting-Group Measure. Optimize. Deliver.
Phone +1.610.644.2856