lean outside in software development

39
LEAN, Outside in Software Development Brendon Page @brendonpaginate

Upload: brendonpage

Post on 23-Feb-2017

39 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Lean outside in software development

LEAN, Outside in Software DevelopmentBrendon Page

@brendonpaginate

Page 2: Lean outside in software development

Overview

Magicand a journey

LEANOutside

in & insideout

Page 3: Lean outside in software development

Magic and a Journey

Page 4: Lean outside in software development

Thinking

Agileprinciples

Supportingpractices

LEANprinciples

LEANsoftware

developmentprinciples

New thinking driven

by personalexperiences

A lot ofexistingthinking

Page 5: Lean outside in software development

Existing practice map

Page 6: Lean outside in software development

MacroPlanning

Communication

Collaboration

Predictthe

future

------------

------------

------

Talked about to death

------------

------------

------

Micro?

Page 7: Lean outside in software development

Micro

If(x<3){..}

foreach(var c in cakes){..}

var thing = new Moo();

If(x<3){..} foreach(var c in cakes){..}var thing = new Moo();

ThinkingPlanning

Sticky

Page 8: Lean outside in software development

The problem with magic

“so roughly how far are you?”

“should be done in about 2 days”

At thestand-up

“so roughly how far are you?”

“should be done in about 2 days”

5 days later at thestand-up

Page 9: Lean outside in software development

Reasoning about magic

If(x<3){..} foreach(var c in cakes){..}var thing = new Moo();

LEAN?

LEAN?

LEAN?

LEAN?

LEAN?

Page 10: Lean outside in software development

My journey

BeforeChillisoft

ChillisoftbeforeOman

OmanChillisoft

afterOman

Page 11: Lean outside in software development

My journey

BeforeChillisoft

ChillisoftbeforeOman

OmanChillisoft

afterOman

Page 12: Lean outside in software development

How I worked

Bottom (DB, FS)

Top (UI, Web services)

Class Class Class

Class Class

Class

Whiteboard

Page 13: Lean outside in software development

How I worked

Bottom (DB, FS)

Top (UI, Web services)

Class Class Class

Class Class

ClassClass

Coding

Insideout

Page 14: Lean outside in software development

How I worked

Bottom (DB, FS)

Top (UI, Web services)

Class Class Class

Class Class

ClassClass

Coding

Page 15: Lean outside in software development

Unhealthy cycle

Build

Think

Re-build

Page 16: Lean outside in software development

Improvement with experience

Forknown

problems

Fewer shorterre-buildsteps

Unknownproblems

Manylong

re-buildsteps

Page 17: Lean outside in software development

My journey

BeforeChillisoft

ChillisoftbeforeOman

OmanChillisoft

afterOman

Page 18: Lean outside in software development

How I worked

Inside (DB, FS)

Outside (UI, Web services)

Class Class Class

Class Class

Class

Whiteboard

Page 19: Lean outside in software development

How I worked

Inside (DB, FS)

Outside (UI, Web services)

Class & Tests Class & Tests Class & Tests

Class & Tests Class & Tests

Class & TestsClass & Tests

Coding

2 times as painful

Page 20: Lean outside in software development

How I worked

Inside (DB, FS)

Outside (UI, Web services)

Class & Tests Class & Tests Class & Tests

Class & Tests Class & Tests

Class & TestsClass & Tests

Coding

Page 21: Lean outside in software development

My journey

BeforeChillisoft

ChillisoftbeforeOman

OmanChillisoft

afterOman

Page 22: Lean outside in software development

How we worked

Inside (DB, FS)

Outside (UI, Web services)

Class Class Class

Class Class

Class

Whiteboard

Page 23: Lean outside in software development

How I worked

Inside (DB, FS)

Outside (UI, Web services)

Class & Tests Class & Tests

Class & Tests

Class & Tests

Coding

Onlybuilt

what weneeded Refactored

out conceptsas theybecameapparent

Extracted

Outsidein

JITThinking

Page 24: Lean outside in software development

DiscomfortI could ‘see’

where wewere goingto end up We

didn’t end upthere

Deliveredhigh quality

system

FastPush

Push

Page 25: Lean outside in software development

My journey

BeforeChillisoft

ChillisoftbeforeOman

OmanChillisoft

afterOman

Page 26: Lean outside in software development

I wrote code completely differently

If(x<3){..} foreach(var c in cakes){..}var thing = new Moo();

How do Iadd value

Can I deferthis decisionuntil I know

more?TDD wasn’tpainful

anymoreOutside

in

Page 27: Lean outside in software development

Trying to explain all this

Page 28: Lean outside in software development

LeanThinking

Banish Waste and Create Wealth in Your CorporationJames P.

WomackDaniel T.

Jones

Page 29: Lean outside in software development

LEAN

Page 30: Lean outside in software development

Eliminatewaste

Page 31: Lean outside in software development

Move

Batch&

queueSmall

batches / onepiece flow

Reducesinventory

Reducesbottlenecks

Earlydiscovery of

defects

Improvesflexibility

Page 32: Lean outside in software development

Outside in &

inside out

Page 33: Lean outside in software development

LEAN context

Insideout

Outsidein

Batch&

queue

Singlepieceflow

Page 34: Lean outside in software development

Obligatory war

Insideout

camp

Outsidein

camp

Page 35: Lean outside in software development

But it’s the way I think

Page 36: Lean outside in software development

DistinctionWhiteboard

(thinking)Think

howeveryou want

to

Coding

Outsidein

JIT thinking

Deferdecisions

Page 37: Lean outside in software development

Getting started

Practice(Game oflife kata is

good)Awareness

Reflect

How do Iadd value

Can I deferthis decisionuntil I know

more?

Page 38: Lean outside in software development

Summary

Outside in is

single pieceflow

ReadLEAN Thinking

Start withkatas

Page 39: Lean outside in software development

Thank you!Questions?

@[twitter handle]