60
The Straight Jacket of Agile Iteration Michael Vax VP Engineering, Partnerpedia

The Straight Jacket of Agile Iteration

Embed Size (px)

DESCRIPTION

My presentation on Agile Vancouver conference in 2011 As the goal of Agile evangelists was to convince people to switch from long Waterfall projects, the main message was to think small – short iterations, no upfront design, and requirements that fit on a card. This presentation explores limitations and pitfalls of a purely iteration focused approach and discuss different ways to address them while still retaining the speed and flexibility of the Agile approach.

Citation preview

Page 1: The Straight Jacket of Agile Iteration

The Straight Jacket of Agile IterationMichael Vax

VP Engineering, Partnerpedia

Page 2: The Straight Jacket of Agile Iteration

About myself

• 30 years in s/w development• Developer, architect, manager, VP, CTO• Discovered Agile in 2005• Implemented Agile process in 4 companies• Involved in Agile Vancouver for last six

years• Currently - VP of Engineering at

Partnerpedia

Page 3: The Straight Jacket of Agile Iteration

Waterfall Agile

Large Small

Page 4: The Straight Jacket of Agile Iteration
Page 5: The Straight Jacket of Agile Iteration
Page 6: The Straight Jacket of Agile Iteration
Page 7: The Straight Jacket of Agile Iteration

The main goal of Agile’s evangelists was to prove that

small works

Page 8: The Straight Jacket of Agile Iteration

That required simplifications

Green field projectsCustomer on site

Development team can define deadlinesSimple designEasy to change

Page 9: The Straight Jacket of Agile Iteration

Agile = Iterations

Page 10: The Straight Jacket of Agile Iteration

Iteration – Focal Point of Go Small Message

Plan DemoImplement

Iteration n-1 Iteration n Iteration n+1

Page 11: The Straight Jacket of Agile Iteration

Disclaimer

I love iterations!!!I love iterations!!!I love iterations!!!

Page 12: The Straight Jacket of Agile Iteration

Horse Blinder Vision

Plan DemoImplement

Iteration

Page 13: The Straight Jacket of Agile Iteration

Are real-life projects and situations more complex than examples used in Agile books?

Page 14: The Straight Jacket of Agile Iteration

Are we missing the Big picture if we focus on iteration too much?

Page 15: The Straight Jacket of Agile Iteration
Page 16: The Straight Jacket of Agile Iteration

There is a life beyond iteration

Plan DemoImplement

Iteration n-1 Iteration n Iteration n+1

What needs to be done before

an iteration?

What needs to be done after the iteration?

How to see the big picture while staying Agile?

How to split time between work for current iteration and future planning?

Page 17: The Straight Jacket of Agile Iteration

Lean Concept of Flow And Optimizing the Whole

The goal of the development process is to optimize delivery of the business value

Requirements

Release

Investment Value

Design Dev TestIdea Product

Page 18: The Straight Jacket of Agile Iteration

Lean Concept of Flow And Optimizing the Whole

Requirements Release

Investment Value

Design Dev TestIdea Product

Can this happen in Agile?

Page 19: The Straight Jacket of Agile Iteration

Requirements

Page 20: The Straight Jacket of Agile Iteration

Sub-optimized Flow

Requirements Release

Investment Value

Design Dev TestIdea Product

If everybody is focused on the current iteration, who is preparing for the next one?

Page 21: The Straight Jacket of Agile Iteration

Ready-Ready to be Done-Done

The Product Owner is asked, “Are you ready-ready?” and the team is

asked “Are you done-done?”.

“When teams concurrently make work ready for next iterations during development, we find quite often

they can cut the iteration length in half”

Page 22: The Straight Jacket of Agile Iteration

Not all features are the same

Feature Characteristics

Minor • Done it many times• Can be assigned to almost anybody on the team• no room to misinterpret requirement

Small • Enhancement to existing feature• Minor UI changes consistent with previous implementations• No technical challenges

Medium • Enhancement to existing feature• Crosscutting multiple modules• Some level of technical uncertainty

Large • Completely new feature or re-architecture of existing functionality with functional enhancements • Unclear domain questions – is bundle a product?• Requires selection of new technology or design patterns• New UI paradigm

Page 23: The Straight Jacket of Agile Iteration

Paths to code ready stories

Small Feature

Medium Feature

Large Feature

User Story

Epic Epic

User Story

Epic

User Story

User Story

User Story

User Story

User Story

User Story

User Story

User Story

ReadyReady for Review

Initial Definition

Legend User Story

Minor Feature

User Story

User Story

User Story

User Story

User Story

User Story

Page 24: The Straight Jacket of Agile Iteration

Ready-Ready Epic

• Domain questions are identified and answered

• Usage scenarios are understood• Main UI flow is defined (mock-ups) • Core technical decisions are made and

validated

Page 25: The Straight Jacket of Agile Iteration

Code Ready Story

• Can be estimated by team in no more that 15 minutes

• Is unlikely to be stopped or canceled due to unclear requirements or technical challenges

• Tests are defined• Domain Changes are understood, reviewed,

and consensus reached• UI mockups are reviewed by both end-users

and designers

Page 26: The Straight Jacket of Agile Iteration

Metric to measure Ready-Ready• Flow in implementation of a story: Is story

implemented without breaks in calendar time and context shift?

• Example:Assume a story is 3 points story. However, for various reasons it becomes 9 points story.The flow in this case is defined as 3/9 or 33%

Optimize the flow!

Page 27: The Straight Jacket of Agile Iteration

Focus on NOW or look ahead?

Plan DemoImplement

Iteration n+2Iteration n Iteration n+1

Page 28: The Straight Jacket of Agile Iteration

Design & Architecture

Page 29: The Straight Jacket of Agile Iteration

No BDUF != NDUG (Big Design Up Front) (No Design Up Front)

Every system has an architecture

Page 30: The Straight Jacket of Agile Iteration

Sub-optimized Flow

Requirements Release

Investment Value

Design Dev TestIdea Product

Page 31: The Straight Jacket of Agile Iteration
Page 32: The Straight Jacket of Agile Iteration

We can always refactor later

Really?

Page 33: The Straight Jacket of Agile Iteration

Complex changes can takes weeks or even months to complete

Page 34: The Straight Jacket of Agile Iteration

High level architectural vision instead of detailed architectural Roadmap

Page 35: The Straight Jacket of Agile Iteration

Think About The Future But Don’t OverbuildLean Principle - (Defer Commitment)

Page 36: The Straight Jacket of Agile Iteration

Prioritization of Design Work

Page 37: The Straight Jacket of Agile Iteration

Consider Several AlternativesLean Principle - consider several

alternatives and to keep those alternatives "open" to us as long as they remain viable

Page 38: The Straight Jacket of Agile Iteration

Change Case Modeling

Description (A couple of sentences or a paragraph describing the basic idea)

Likelihood (Rating of how likely the change case is to occur (e.g. High, Medium, Low or %))

Timeframe (Indication of when the change is likely to occur)

Potential Impact (Indication of how drastic the impact will be if the change occurs

Page 39: The Straight Jacket of Agile Iteration

Use Spikes to separate research from Implementation

Page 40: The Straight Jacket of Agile Iteration

Not enough planning smells

• Difficulties with story estimations on iteration planning meeting• Complete change of technical directions in the middle of iteration• Inability to answer developers questions when implementation starts• Abandon and incomplete stories• Idle development team waiting for requirements

Page 41: The Straight Jacket of Agile Iteration

Testing

Page 42: The Straight Jacket of Agile Iteration
Page 43: The Straight Jacket of Agile Iteration

Most of s/w projects have not been developed with TDD

Page 44: The Straight Jacket of Agile Iteration

Test Strategy cannot be limited to an iteration

Page 45: The Straight Jacket of Agile Iteration

Regression & Manual Testing Have not Disappeared

Page 46: The Straight Jacket of Agile Iteration

Performance Testing in Agile Project

Iter.0 Iter.1 Iter.2 Iter.3 .... Iter.x-1 Iter.x

Benchmark Test Benchmark Test Benchmark Test

• Test environment setup• Tools selection• Performance requirements• Test data preparation

Focus Test Focus Test Focus TestFocus Test

• Load tests• Stress tests• Capacity testing• Resilience testing

Page 47: The Straight Jacket of Agile Iteration

Performance Testing and Iterations

Iter. n-1Feature A

Iter. nFeature B

Iter n+1

Feature C

Feature A• Test requirements• Test development

PerformanceSpike

Feature A - Focus test

Feature B• Test requirements• Test development

Feature B - Focus test

Feature C• Test requirements• Test development

Page 48: The Straight Jacket of Agile Iteration

Performance Testing - Agile Best Practices

• Put performance tasks on a SCRUM board• Make fixing functional bugs that block performance

tests a high priority• Do not delay fixing performance issues identified by

tests• Retest after fixes are applied to know if they worked• You cannot guess where the next bottleneck is• Don’t pre-optimize before testing

Page 49: The Straight Jacket of Agile Iteration

Business vs. Development

Page 50: The Straight Jacket of Agile Iteration

Business does not plan in iterations

Page 51: The Straight Jacket of Agile Iteration

Business needs a Date and Commitment

Page 52: The Straight Jacket of Agile Iteration

How to do business level estimations in Agile?

Page 53: The Straight Jacket of Agile Iteration

Units of Estimations

Leve

l of U

nder

stan

ding

Low

High

Months

Weeks

Days

Hours

Page 54: The Straight Jacket of Agile Iteration

Look at the Flow

Requirements

Release

Investment Value

Design Dev TestIdea Product

Page 55: The Straight Jacket of Agile Iteration

Make it Visual

Get a picture of wall from Partnerpedia

Page 56: The Straight Jacket of Agile Iteration

We don’t Operate in a Walled Garden

Page 57: The Straight Jacket of Agile Iteration

Coordinating Branches & Teams

Page 58: The Straight Jacket of Agile Iteration

External Dependencies

Customers, Partners,

Other Departments

Page 59: The Straight Jacket of Agile Iteration

Maintain long term vision but don’t focus on small

things when looking ahead

Plan DemoImplement

Iteration n+2Iteration n Iteration n+1

Find the Balance

Page 60: The Straight Jacket of Agile Iteration

Questions?

Getting in touch:Email: [email protected]

Twitter: michaelvaxLinkedIn: http://ca.linkedin.com/in/michaelvax