agility through the lens of software …files.meetup.com/2974112/20150819 agility through the lens...

47
AGILITY THROUGH THE LENS OF SOFTWARE ENGINEERING Louisville Agile Forum, August 2015

Upload: lykhanh

Post on 17-May-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

AGILITY THROUGH THE LENS

OF SOFTWARE ENGINEERING

Louisville Agile Forum, August 2015

Who is this dude Tom Harrison?

• Rose-Hulman 1995 CS, 2014 MSSE

• 3 years @ Interactive Intelligence

– Delivery management and agile coaching

• 17 years @ Sagian+Beckman+Coulter+Danaher

($16+B)

– 6 life science products (ROBOTS!)

– 1 clinical diagnostics product

– Engineering and talent management

• Geek, Gamer, Family, Curious

LET’S BUILD SOME CONTEXT -

“WHY” AGILE?

Context is Everything

“Context is worth 80 IQ points.”

-Alan Kay

“There are no best practices, only good practices

in context.”

-Kaner and Bach

Agility depends on context

Manufacturing

Maintenance

Derivative

Extension

New Product

Development

Research

Deliberate

Innovation

Purposeful

Creativity

Disruptive or

Revolutionary

Technology

Consider the Stacey Matrix

Manufacturing

Maintenance

Derivative

Extension

New Product

Development

Research

Deliberate

Innovation

Purposeful

Creativity

Disruptive or

Revolutionary

Technology

Stacey Matrix with

Development Styles

There are other models

Cynefin (Snowden) Structure-Behavior (Appelo)

And culture too

Cottmeyer Agile Adoption Model Schneider Culture Model

MORE CONTEXT –

“WHAT” IS DIFFERENT ABOUT

AGILE?

Values are valued

Principles are your guide1. Our highest priority is to satisfy the

customer through early and continuous

delivery of valuable software.

2. Welcome changing requirements, even

late in development. Agile processes

harness change for the customer's

competitive advantage.

3. Deliver working software frequently, from a

couple of weeks to a couple of months,

with a preference to the shorter timescale.

4. Business people and developers must

work together daily throughout the project.

5. Build projects around motivated

individuals. Give them the environment

and support they need, and trust them to

get the job done.

6. The most efficient and effective method of

conveying information to and within a

development team is face-to-face

conversation.

7. Working software is the primary measure

of progress.

8. Agile processes promote sustainable

development. The sponsors, developers,

and users should be able to maintain a

constant pace indefinitely.

9. Continuous attention to technical

excellence and good design enhances

agility.

10.Simplicity--the art of maximizing the

amount of work not done--is essential.

11.The best architectures, requirements, and

designs emerge from self-organizing

teams.

12.At regular intervals, the team reflects on

how to become more effective, then tunes

and adjusts its behavior accordingly.

At the Heart of Agile

Alistair Cockburn

Agile is about PeopleSkill

Motivation

Attitude

Environment

Learning

What needs to be

learned?

What problem is being

experienced?

What assertion needs to

be validated?

How will the idea be tested?

Does the idea work?

What else was learned?

What new ideas have emerged?

Agile is about Learning

Questioning

is Essential

to Learning

Agile is about Discipline

• Always focus on customer value

• High quality through technical excellence

– Software craftsmanship

– High levels of automation for regression and impact

analysis

• Continuous

– Planning, testing, learning, improvement

Agile prefers complete functionality

delivered incrementally

Instead

of this:This:

Analyze

Design

Implement

Qualify

Deploy

LET’S APPLY CONTEXT –

“HOW” DO YOU DO AGILE?

Where do you start?

Do less and get more Done

Build the right product

Build the product right

What evidence do you have of that?

David Hussman

There are many agile styles

A process is a set of tools, not a solution

•Optimize the Whole

• Focus on Customers

•Energize Workers

•Eliminate Waste

• Learn First

•Deliver Fast

•Build Quality In

•Keep Getting Better

Lean Software

A Solid Foundation

Lean

Agile

Learning Organization

Changing Software Development:

Learning to Become Agile by Allan

Kelly

“just enough”

process

discipline

Lean Startup for product and

customer discovery

Lean for systems thinking and

analysis

• Optimize the Whole

• Focus on Customers

• Energize Workers

• Eliminate Waste

• Learn First

• Deliver Fast

• Build Quality In

• Keep Getting Better

Lean Software

Extreme Programming for

Technical Practices

Scrum for Project Management

Kanban for visualization

Manufacturing

Maintenance

Derivative

Extension

New Product

Development

Research

Deliberate

Innovation

Purposeful

Creativity

Disruptive or

Revolutionary

Technology

Stacey Matrix with Agile Styles

Test Driven

Refactoring

User Stories

Acceptance Tests

Sprints Product BacklogsSprint Reviews

Sprint Backlog

Continuous Integration

Evolutionary Design

Burndown

Burnup

Velocity

Information Radiators

Iterations

ReleasesPersonasKanban

Kaizen

Common Workspace

Mura - Muda

Cross Functional TeamsDaily Scrum Meeting

Retrospectives

Iteration 0

Sustainable Pace

Chartering

Domain Driven Design

Collective Ownership

There are huge piles of practices

Information RadiatorsDomain Driven Design

Test Driven

Refactoring

User Stories

Acceptance Tests

Sprints Product BacklogsSprint Reviews

Sprint Backlog

Continuous Integration

Evolutionary Design

Burndown

Burnup

Velocity

Iterations

ReleasesPersonasKanban

Kaizen

Common Workspace

Mura - Muda

Cross Functional TeamsDaily Scrum Meeting

Retrospectives

Iteration 0

Chartering

Don’t focus on the practices

Choose tools that show value

There are huge piles of practices

Sustainable PaceCollective Ownership

Success is…

frequent delivery of whole value,

building the right thing, the right way,

collaboratively learning & improving,

balancing evidence and intuition,

and producing what people need.

FOR INSTANCE, WHAT DOES

INTERACTIVE INTELLIGENCE

ACTUALLY DO?

Intentional selections stick

Community - Teams

Products - Planning Measuring - Learning

Iterative Delivery

Chartering

Common Workspace

Information Radiators

Iteration 0

Story Maps and User Stories

Product Backlogs

Personas

Release / Iteration Planning

Acceptance Tests

Burnup / Velocity

Continuous Integration

Test Driven / Refactoring

Retrospectives

Stand Up Meetings

Product Reviews

Continuous Feedback

Product Roadmap

Project Charter

The continuous view

plan

evaluate

There are many layers of

planning and evaluation.

Iterative planning and

evaluation provides

many opportunities for

course corrections.

Planning and evaluation

moves from coarse grain

to fine grain, and from

abstract to detailed

abstract,

coarse grained,

high level

precise,

fine grained,

detailed

plan

plan

evaluate

Iteration

Story

code

validatedesign

evaluate

Product Roadmap

Iterations Planning

Chartering

and/or

EPICSPersonas

Story Writing/Mapping

Prioritization

Daily Standup

Dev Project (DP) ~3 Months

Retrospective

A flattened view

Project Dashboards

Based on Agile Data

REFERENCES

And special thanks to

DevJam for original

materials.