the seven wastes of software development

Post on 10-May-2015

2.038 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

As presented at Memphis JUG, February 15, 2011.

TRANSCRIPT

THE SEVEN OF SOFTWARE

DEVELOPMENTMatt Stine

WASTES

THE SEVEN OF SOFTWARE

DEVELOPMENTMatt Stine

WASTESDeadly Sins

• Senior Software Architect/Web Developer

• Speaker (JavaOne, SpringOne/2GX, Lambda Lounge, NFJS, RWX, PAX, UberConf)

• Author (GroovyMag, NFJS the Magazine, Selenium 2.0 Refcard)

• President of the Memphis/Mid-South Java User Group

• Past Agile Zone Leader @ DZonehttp://agile.dzone.com/articles/seven-wastes-software

About your speaker...

Taiichi Ohno

“All we are doing is looking at the time line, from the moment the customer gives us an order to the point when

we collect the cash. And we are reducing the time line by reducing the

non-value adding wastes.”

Taiichi Ohno

Shingo’s seven wastes

• In-Process Inventory

• Extra Processing

• Overproduction

• Transportation

• Waiting

• Motion

• Defects

MARY and tom’s seven wastes

• Partially Done Work

• Extra Processes

• Extra Features

• Handoffs

• Delays

• Task Switching

• Defects

Partially done work

CLUTTER

//TODO

//FIXME

@SuppressWarnings(“unchecked”)

it gets in the way!

Avoiding Partially Done Work

Limit your work in progress

short cycles

January 1, 2011 February 25, 2011

Minimize

BranchesLong Running

Continuous

integrationQA

Deploymentdelivery

Merciless Refactoring

ExtrA Processes

ceremony

Integration

TESTING

Version Control

Databasemigrations

Deployment

Solutions?

The Butler Formerly Known as Hudsonhttp://jenkins-ci.org

http://gradle.org

WebDriver2

HTTP://geb.codehaus.orghttp://spockframework.org

http://seleniumhq.org

http://www.liquibase.org

http://git-scm.com

https://github.com/capistrano/capistrano/wiki

http://redcareditor.com

http://macromates.com

http://www.gnu.org/software/emacs

http://www.vim.org

bash

zsh

ksh

find

grep

pushd

popdawk

sed cat

sh

http://www.cygwin.com

http://clojure.org

http://scala-lang.orghttp://www.jython.org

http://groovy.codehaus.orghttp://jruby.org

ExtrA Features

Pet Features

Obsolete Features

Gold

Plating

RDD

PATTERNS

Extra code

• Must be tracked

• Must be compiled

• Must be integrated

• Must be tested

• Must be maintained

• Increases complexity

• Adds potential failure points

• Likely will become obsolete before use

the worst wastE?

Avoiding extrAFeatures

Frequent ProductDemos

Frequent Production

Deployments

YAGNI

The cheapest, fastest, and most reliable components of a computer system are those that aren't there.

Gordon Bell

HANDOFFS

How the customer explained it...

How the analyst designed it...

How the programmer wrote it...

What the testers received...

What operations installed...

What the customer really needed!

tacit knowledge

if each handoff leaves 50% behind:

• 25% of knowledge left after 2 handoffs

• 12% of knowledge left after 3 handoffs

• 6% of knowledge left after 4 handoffs

• 3% of knowledge left after 5 handoffs

http://en.wikipedia.org/wiki/DevOps

HIGH-BANDWIDTHCommunication

Body Language55%

Tone38%

Words7%

Source: Neal Ford, “On the Lam from the Furniture Police” DSSS 2009.

Source: Neal Ford, “On the Lam from the Furniture Police” DSSS 2009.

Source: Neal Ford, “On the Lam from the Furniture Police” DSSS 2009.

e-mail is yourLAST

RESORT!!!

DELAYS

gatewaydrug

partially done work

extra processing

task switching

manifestations

codecheck-in

big bangintegration

big “anything” up front

Requirements

PlanningDesign

Analysis

testing

deployment

fight delays

CHECK-IN-driven development

CHECK-IN-driven development

• Write enough test to fail

CHECK-IN-driven development

• Write enough test to fail

• Write enough code to pass

CHECK-IN-driven development

• Write enough test to fail

• Write enough code to pass

• Refactor

CHECK-IN-driven development

• Write enough test to fail

• Write enough code to pass

• Refactor

• CHECK-IN, CHECK-IN, CHECK-IN!!!

continuous integration

tighten the feedback loop!

LIMIT WIP

continuous qa

continuous delivery

TASK SWITCHING

FLOW

time disappears

tunnel vision

“in the zone”

total concentration

insanely productiveSource: Neal Ford, “The Productive Programmer: Canonicality/Focus,” NESS 2008.

Week 1 Week 2 Week 3 Week 4

Task ATask B

Task C

Week 1 Week 2 Week 3 Week 4

Task ATask B

Task C

Week 1 Week 2 Week 3 Week 4

Task ATask B

Task C

Week 1 Week 2 Week 3 Week 4

Task ATask B

Task C

Week 1 Week 2 Week 3 Week 4

Task ATask B

Task C

Week 1 Week 2 Week 3 Week 4

MinimizeTask Switching

work on one thing at a time

http://www.pomodorotechnique.com/

sacrificEa

Developer

shareKnowledge

DEFECTS

IMPACTx

TOTAL TIME UNDETECTED

=WASTE

CRITICALx

3 MINUTES UNDETECTED

=

CRITICALx

3 MINUTES UNDETECTED

=Comparatively Low

MINORx

3 WEEKS UNDETECTED

=

MINORx

3 WEEKS UNDETECTED

=Comparatively High

reduce waste by finding defects

asap!!!

defectdetectionspeedups

mistakeproofing

tests

ContinuousIntegration

exploratorytesting

antibodytests

“You Are Your Softwareʼs Immune System!”http://agile.dzone.com/articles/you-are-your-softwares-immune

TOOLS FOR HARD PROBLEMS

Combinatorial testing tools

MIRRORPRODUCTION

RELEASETO

PRODUCTIONASAP!

That’s all folks!

Please fill out your evaluations!

Matt Stinematt.stine@gmail.com

Twitter: mstinehttp://www.mattstine.com

credits• http://www.flickr.com/photos/darwinbell/239572495/

• http://www.flickr.com/photos/darwinbell/239573255/

• http://cleavefast.com/wp-content/uploads/2010/06/Taichii_Ohno.jpg

• http://www.flickr.com/photos/pagedooley/3302644588

• http://www.flickr.com/photos/sansumbrella/3489486144/

• http://www.flickr.com/photos/nathancolquhoun/1086854949

• http://www.flickr.com/photos/andidigress/4471100232/

• http://216.92.30.49/tv/posters/hoarders_ver2_xlg.jpg

• http://www.sxc.hu/photo/995894

• The Karate Kid, 1984 Motion Picture from Columbia Pictures

• http://www.flickr.com/photos/nolarisingproject/4896236515/

• http://www.flickr.com/photos/nolarisingproject/4896861104/

• http://www.flickr.com/photos/geoffjones/3690612407/

• http://www.flickr.com/photos/nolarisingproject/4896791356/

• http://www.flickr.com/photos/bigtallguy/148771151/

• http://moparx.com/files/images/commodore_1541.jpg

• http://www.flickr.com/photos/talkingplant/2183210426

• http://www.flickr.com/photos/kplawver/3532822079

• http://www.flickr.com/photos/maisonbisson/3110247253/

• http://www.flickr.com/photos/aagius/3558810758

• The Simpsons, Fox Broadcasting Company

• http://www.flickr.com/photos/nolarisingproject/4896224995/

• http://www.flickr.com/photos/nickpiggott/2545688097

• Office Space,

• http://www.flickr.com/photos/nolarisingproject/4896789584/

• http://www.flickr.com/photos/evilpeacock/2941175262/

• http://www.sxc.hu/photo/1224062

• http://www.flickr.com/photos/nolarisingproject/4896841468/

• http://www.flickr.com/photos/nolarisingproject/4896813004/

• http://www.flickr.com/photos/darwinbell/239572918/

What about the barrels?

In the wake of the second major engineering failure to happen upon Southeastern Louisiana in the last five years, Rox Steady has produced

these installation pieces of street art. Each representing the seven deadly sins and placed in seven different neighborhoods of New

Orleans, they are representative of the things that have led up to such engineering disasters..

Their symbolism is timely in the wake of the oil spill that BP and their cohorts are now saying is all cleaned up. May a swarm of locusts visit

upon their homes and zombies eat their brains…

From http://www.flickr.com/photos/nolarisingproject/4896789584/

How the seven wastes were mapped to the seven deadly sins is a thought exercise left to

the attendee.

top related