Information Technology Reference
In-Depth Information
Thefirstbenefitofthispatternisthateachnewreleaseissmaller,enablingyoutoisolate
bugs more easily. The second benefit is that code latency is reduced. Code latency is how
fastcodegetsfromthefirstcheck-intoproduction,whereitcanbemakingmoneyforyou.
From a financial standpoint, the code going into production sooner means the code can be
generating return on investment (ROI) sooner. Lastly, small batches mean the process is
doneovermanyiterations.Thismeansgettingmorepracticeatit,soyouhavemoreoppor-
tunities to get better at the process. This reduces risk.
Velocityishowmanytimesyoushipinamonth.Highvelocityandlowlatencyarereal-
ized through releasing small batches.
The small batches principle is counter-intuitive because there is a human tendency to
avoid risky behavior. Deploying software in production involves risk; therefore businesses
traditionally minimize the frequency of deployments. While this makes them feel better,
theyactuallyareshootingthemselvesinthefootbecausethedeploymentsthataredoneare
bigger and riskier, and the team doing them is out of practice by the time the next one rolls
around.
This principle applies to deployments and any other process that involves making fre-
quent changes.
8.2.5 Adopting the Strategies
ThefirststepinadoptingtheThreeWaysistoidentifytheteam'svaluestreams—processes
done for the business, or requested by the business.
Go through each process several times until it can be done from beginning to end
without failure. It doesn't have to be optimal, but each step needs to be clearly defined so
that it can be done in a repeatable fashion. That is, a reasonably well-trained person should
be able to do the step and the result will be the same as the result from another reasonably
trained person. Now the process is defined.
Once the process is defined, amplify the feedback loops. That is, make sure each step
has a way to raise the visibility of problems so that they are worked on, not ignored. Col-
lect measurements on the length, frequency, and failure rate of the steps. Make this data
available to all involved.
This feedback is used to optimize the process. Find the steps that are the most error
prone,unreliable,orslow.Replacethem,improvethem,oreliminatethem.Thetwobiggest
inefficienciesarerework(fixingmistakes)andredundantwork(duplicateeffortthatcanbe
consolidated).
Every process has a bottleneck—a place where work is delayed while it waits on other
dependencies. The most beneficial place to put energy into improvement is at the bottle-
Search WWH ::




Custom Search