Upload
matt-stine
View
2.038
Download
0
Tags:
Embed Size (px)
DESCRIPTION
As presented at Memphis JUG, February 15, 2011.
Citation preview
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 [email protected]
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.