Top Banner
Using the Unified Process as a Scaling Framework for Scrum
82

Using RUP As A Scaling Framework For Scrum

Aug 20, 2015

Download

Technology

Mike Cottmeyer
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Using RUP As A Scaling Framework For Scrum

Using the Unified Process as a Scaling Framework for Scrum

Page 2: Using RUP As A Scaling Framework For Scrum

Where to go for the presentation

Mike’s blog: http://www.leadingagile.comBrian’s blog: http://blog.softwarearchitecture.com

Page 3: Using RUP As A Scaling Framework For Scrum

Who is Mike Cottmeyer?

• Have been on the VersionOne service team for about 8 months

• Prior to joining VersionOne I was a Senior Project Manager for CheckFree Corporation in Atlanta, GA

• Certified Scrum Master, PMP, DSDM Agile Project Leader

Page 4: Using RUP As A Scaling Framework For Scrum

Who is Brian Sondergaard?

• Director of Architecture at CheckFree (now a part of Fiserv)

• Instrumental in bringing agile to Fiserv

Page 5: Using RUP As A Scaling Framework For Scrum

Overview of the next 90 minutes

• Not a questioning agile talk• This is a scaling agile talk• It is a talk about applying

agile from “concept to cash”• It is a talk about making

agile work in real organizations

• Lot’s of stuff to cover • Links to resources at the end

Page 6: Using RUP As A Scaling Framework For Scrum

Our Agenda• 15 minutes setting up

the problem• 15 minutes talking

about core UP and Agile principles

• 45 minutes explaining how it all works

• 15 minutes for questions

Page 7: Using RUP As A Scaling Framework For Scrum

If you are part of a small team running agile on whiteboards…

Page 8: Using RUP As A Scaling Framework For Scrum

Methodology pragmatist

• We are passionate about the values and principles of Agile

• We love stories about wholesale agile transformation

• But… we’re going to do what it takes to get the job done

Page 9: Using RUP As A Scaling Framework For Scrum

Most teams are not there…

• Many are doing agile under less than agile circumstances

• As an agile community we need to help people where they are

• …but get them where they need to be

Page 10: Using RUP As A Scaling Framework For Scrum

Most teams are looking for advice that resonates

Page 11: Using RUP As A Scaling Framework For Scrum

Our story…• Started with a small

colocated team• Product took off • Team grew, 70 plus

including offshore• Our product was

beginning to leveraged as a shared service across the organization

Page 12: Using RUP As A Scaling Framework For Scrum

…a little more story

• We were beginning to depend on other enterprise services for our product

• Our product became a product of products

Page 13: Using RUP As A Scaling Framework For Scrum

What is a product of products?

Payments Services

Risk Services

Business Intelligence

Corporate Financials

Online Banking

X X X X

Phone Banking

X X X

Payment Processing

X X

Remittance Processing

X X

Page 14: Using RUP As A Scaling Framework For Scrum

Complex product architecture

Partner Communication

Payments Risk

Bus Intel/ Reporting

Business Intelligence

Corporate Financials

Page 15: Using RUP As A Scaling Framework For Scrum

Small team agile doesn’t resonate

• Shared code ownership

• Teams responsible for entire architecture

• Legacy systems with little automation

• Tightly coupled architectures

Page 16: Using RUP As A Scaling Framework For Scrum

Big company overhead

• Document based tollgates

• Corporate governance and decision making

• Traditional Project Management Offices

Page 17: Using RUP As A Scaling Framework For Scrum

Agile offers only partial coverage

Mike Griffiths, Leading Answershttp://www.leadinganswers.com

Page 18: Using RUP As A Scaling Framework For Scrum

Teams are trying to find a way to get the value of agile…

Page 19: Using RUP As A Scaling Framework For Scrum

…but don’t fit the agile profile

Page 20: Using RUP As A Scaling Framework For Scrum

Scrum is really simple

• Scrum is a simple framework

• Deliver in short cycles, inspect outcomes, and adapt process or requirements

• Some role definition, daily stand up meetings, planning process, etc.

Page 21: Using RUP As A Scaling Framework For Scrum

Devise and execute the best processes possible based on their skills, experience, and the situation in which they find themselves

Page 22: Using RUP As A Scaling Framework For Scrum

Scrum is not enough

• Business case• Vision• Backlog (where

does it come from?)• Architecture• Documentation• Release plans and

roadmaps

Page 23: Using RUP As A Scaling Framework For Scrum

Other Challenges

• Interfaces with external organizations

• When there are lots of team members

• Geographically distributed• Offshore team members• Closed workspaces• Large systems

architectures• External dependencies

Page 24: Using RUP As A Scaling Framework For Scrum

Is this even agile?

• Maybe not• Lots of smells• Agile thinking

and agile practice can still be valuable

Page 25: Using RUP As A Scaling Framework For Scrum

What do we build around

• Iterative and incremental delivery of working software

• Short cycle planning with an integrated customer

• Small, independent stories• Empowered teams • Autonomy and self

organization• Ownership and Accountability

Page 26: Using RUP As A Scaling Framework For Scrum

Scrum-but introduces risk

• Deviating from agile practice introduces risk

• We need to be intentional about how we mitigate that risk

Page 27: Using RUP As A Scaling Framework For Scrum

Mitigating process Risk

• As we scale, we often need to have more things written down

• We need to be more intentional about architecture

• We need to be more intentional about requirements

Page 28: Using RUP As A Scaling Framework For Scrum

Why bother talking about UP

• Provides an iterative and incremental delivery structure

• Guidance for writing and breaking down requirements

• Patterns for dealing with software architecture

Page 29: Using RUP As A Scaling Framework For Scrum

Why bother talking about UP

• Structure for necessary documentation

• Provides process guidance for all aspects of the SDLC, not just development

Page 30: Using RUP As A Scaling Framework For Scrum

Most teams are making tradeoffs, lets be intentional about managing those tradeoffs and understanding the risks

Page 31: Using RUP As A Scaling Framework For Scrum

Common myths about UP

• Adopting UP means adopting Rational Tools

• UP is too big• UP is too document

focused• UP is not configurable

People in the agile community really HATE the Unified Process, especially the

RUP

Page 32: Using RUP As A Scaling Framework For Scrum

Process gone bad

• UP is designed to be configurable

• In practice people do UP poorly

• UP with a waterfall, predictive focus

• Agile with an undisciplined ad-hoc focus

Page 33: Using RUP As A Scaling Framework For Scrum

Bad process is bad process no matter what methodology you are using

Page 34: Using RUP As A Scaling Framework For Scrum

How do we make all this work?

• Take what is good about agile, what scales, and leverage it

• Replace what doesn’t work with certain components of the UP

• Keep things as simple as possible

Page 35: Using RUP As A Scaling Framework For Scrum

How do we do this right?

• We want to be as agile as possible

• We want to implement as little structure as possible to scale

• Give people across all the teams a common language, minimal standardization, and some degree of coordination

• Stay risk focused!

Page 36: Using RUP As A Scaling Framework For Scrum

Do the simplest thing that could possibly work

Page 37: Using RUP As A Scaling Framework For Scrum

What agile should I keep?

• Small teams, teams of teams if necessary

• Short planning cycles

• Visibility, inspection, adaptation

• Retrospectives• Integrated onsite

customer

Page 38: Using RUP As A Scaling Framework For Scrum

What agile should I keep?

• Progressive elaboration of plans

• Small independent stories

• Autonomy and self organization

• Ownership and accountability

Page 39: Using RUP As A Scaling Framework For Scrum

What UP stuff should I keep?

• Sprit of RUP• Phases• Iterations• Use Cases• Deliberate

Architecture• Some artifacts

Page 40: Using RUP As A Scaling Framework For Scrum

What agile stuff might go away?

• No documentation• No planning• Emerging

architecture• Universal shared

code ownership

Page 41: Using RUP As A Scaling Framework For Scrum

What UP stuff might go away?

• Role definitions• Process guidance

unless something has value in our context

• Most artifacts

Page 42: Using RUP As A Scaling Framework For Scrum

42

What UP stuff will definitely go away?

Page 43: Using RUP As A Scaling Framework For Scrum

Introduce elements of UP that reduce risk

Page 44: Using RUP As A Scaling Framework For Scrum

Spirit of UP

• Attack major risks early and continuously, or they will attack you

• Ensure that you deliver value to your customer

• Stay focused on executable software and the “product”

• Accommodate change early in the project

Page 45: Using RUP As A Scaling Framework For Scrum

Spirit of UP

• Baseline an executable architecture early

• Build your system with components

• Work together as one team

• Make quality a way of life, not an afterthought

Page 46: Using RUP As A Scaling Framework For Scrum

UP phases explained

ConstructionConstructionElaborationElaborationInceptionInception TransitionTransition

LifecycleObjectiveMilestone

LifecycleArchitectureMilestone

Initial OperationalCapabilityMilestone

ProductRelease

Milestone

Are the technical Are the technical risks mitigated?risks mitigated?

Are the Are the logistical risks logistical risks mitigated?mitigated?

Are the business Are the business risks mitigated?risks mitigated?

Are we really Are we really ready to ship a ready to ship a complete complete robust product robust product to market?to market?

Page 47: Using RUP As A Scaling Framework For Scrum

Effort and duration by phase

Inception Elaboration Construction Transition

Effort 5% 20% 65% 10%

Schedule 10% 30% 50% 10%

Inception Elaboration Construction Transition

Page 48: Using RUP As A Scaling Framework For Scrum

A more Agile representation?

Iteration Zero Iteration H

Iteration 1 Iteration 2 Iteration 3

Internal Release*

Page 49: Using RUP As A Scaling Framework For Scrum

Phases are time boxes for dealing with risk

Page 50: Using RUP As A Scaling Framework For Scrum

With phases as the key concept…

• Outcomes• Activities• Artifacts

Page 51: Using RUP As A Scaling Framework For Scrum

Inception Outcomes

• Clarify the Vision• Initial Backlog• Preliminary estimates• One possible solution• Validation of the

business case• Business risk

mitigated• Stakeholder

agreement

Page 52: Using RUP As A Scaling Framework For Scrum

Inception Activities

• Meetings between product owner, architect, and analyst to evolve the product backlog and the candidate solution

• Balance the needs of the business with the capability of the team and feasibility of the solution

• Review the outcome with the business, manage expectations, go/no-go decision

Page 53: Using RUP As A Scaling Framework For Scrum

Collaborative Model

Project Manager

Page 54: Using RUP As A Scaling Framework For Scrum

Inception Artifacts

• Business case• Vision• Use Case Inventory• Risk Assessment• Candidate

architecture

Page 55: Using RUP As A Scaling Framework For Scrum

Elaboration Outcomes

• Architectural spikes completed• Architecturally significant backlog

done• Validated systems architecture• Walking skeleton• Product backlog “fully” defined• Technical risk mitigated• Backlog re-estimated• Business decision to move forward

Page 56: Using RUP As A Scaling Framework For Scrum

Elaboration Activities

• Validate systems architecture by building out backlog items that will “prove” the architecture

• Performance testing• Security testing• Backlog creation• Arch/Tech Spikes

Page 57: Using RUP As A Scaling Framework For Scrum

• Consensus on major “forces”

• Clarity of boundaries• Agreement on where

we’re going• “Stay between the

lines”

Establish architecture “guardrails”

Page 58: Using RUP As A Scaling Framework For Scrum

Scrum of Scrums

Epic/System Perspective

Feature/SubsystemPerspective

Story/Component/ DesignPerspective

Page 59: Using RUP As A Scaling Framework For Scrum

Business Level Use Case

Page 60: Using RUP As A Scaling Framework For Scrum

Solution Architecture

Page 61: Using RUP As A Scaling Framework For Scrum

Primary and alternate flows

Page 62: Using RUP As A Scaling Framework For Scrum

Interactions and contracts

Page 63: Using RUP As A Scaling Framework For Scrum

Design level use case

Page 64: Using RUP As A Scaling Framework For Scrum

Detailed interactions

Page 65: Using RUP As A Scaling Framework For Scrum

Data

Page 66: Using RUP As A Scaling Framework For Scrum

Scrum of Scrums• Higher level scrums

integrate the scenarios of the component teams

• Breakdown application and zip it back up

• Automation at each level of the breakdown/rollup

Page 67: Using RUP As A Scaling Framework For Scrum

Elaboration Artifacts

• Updated Product backlog• Use case scenarios defined• Go forward architectural

representation• Done backlog items• Test plan/test results• Fully integrated and working

subset of the system

Page 68: Using RUP As A Scaling Framework For Scrum

Construction Outcomes

• Product built• Product fully tested• Product

documentation completed

• Logistical risks mitigated

• Business decision to release to market

Page 69: Using RUP As A Scaling Framework For Scrum

Construction Activities

• Most ‘agile’ of all phases

• Teams building features from the backlog

• Testing• Documentation• Measure velocity• Project management

Page 70: Using RUP As A Scaling Framework For Scrum

Construction Artifacts

• Evolving backlog• Design

documentation• Code• User

documentation• Test results

Page 71: Using RUP As A Scaling Framework For Scrum

Transition Outcomes

• Product finalized and ready to be released

• Any remaining issues resolved

• Preparation for handoff

• Transition to support or operations

• Production deployment

Page 72: Using RUP As A Scaling Framework For Scrum

Transition Activities

• Review• Documentation• Last minute bug

fixes• Last minute

backlog changes

Page 73: Using RUP As A Scaling Framework For Scrum

Transition Artifacts

• Hand off docs• Final user

documentation• Packaging• Website• Marketing

Page 74: Using RUP As A Scaling Framework For Scrum

Role of documentation

Page 75: Using RUP As A Scaling Framework For Scrum

Managing Complexity

• Product• Project• Management• Team• Architecture

• Pick two• Align the rest

Page 76: Using RUP As A Scaling Framework For Scrum

Complexity diagram

Page 77: Using RUP As A Scaling Framework For Scrum

Keep it simple

Page 78: Using RUP As A Scaling Framework For Scrum

Closing remarks

• Might not need to bother if you are a small collocated agile team

• Be pragmatic about process and adopt things that make sense for the size and complexity of your organization

• Be intentional about the tradeoffs you are making and mitigate process risks

• Done right, there are some concepts from RUP you can use to help mitigate these risks

Page 79: Using RUP As A Scaling Framework For Scrum

Valuable RUP concepts

• Sprit of RUP• Phases• Iterations• Use Cases• Deliberate Architecture• Some artifacts

Page 80: Using RUP As A Scaling Framework For Scrum

Where to go for more info…

• Scaling Software Agility – Dean Leffingwall• Agile Project Management With Scrum – Ken

Schwaber• Managing Iterative Software Development

Projects – Kurt Bittner, Ian Spence• Scott Ambler

http://www.ambysoft.com/unifiedprocess/agileUP.html

• DSDM http://www.dsdm.org/products/atern.asp

Page 81: Using RUP As A Scaling Framework For Scrum

Where to go for the presentation

Mike’s blog: http://www.leadingagile.comBrian’s blog: http://blog.softwarearchitecture.com

Page 82: Using RUP As A Scaling Framework For Scrum

Simplifying Software Delivery