Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
1
Meeting Tight Software Schedules Through
Cycle Time Reduction
Dennis J. FraileyRetired Principal Fellow, Raytheon Company
Sole Proprietor, DJF [email protected]
3Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
3
Outline
Background - Why Cycle Time is Important– Cycle Time Reduction Issues and
Examples– Defining Cycle Time
Three Fundamental Problems Typical Causes Spotting the Symptoms and
Opportunities Fixing the Problems - Five Principles A Few Lessons Learned
4Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
4
Why Cycle Time is Important
Yes, Sir!Right Away,
Sir.
I needthat software
no later than next week! Why is it taking so long?
But we’re already working
overtime!
We’ll work overtime to get
it out, sir.
5Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
5
Cycle time is the time required to execute all activities in a process, including actual processing time AND all waiting time
Definition of Cycle Time
Consider a “10 minute” oil change
6Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
6
Short Cycle Time Gives You a Competitive Edge
You sell your software while the competitor is still completing theirs
You start the next software product while the competitor is still completing the current one
You lower your costs Or you can start development later in the
program cycle– More time to determine the requirements– And, once you start, you allow less time to
change requirements
7Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
7
How Can Cycle Time be Improved?
The following video illustrates how to improve cycle time
As you watch, think of ideas that might be applicable to software development
What did they do to reduce cycle time?
8Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
8
Some Lessons from the Cycle Time Video
What did they do?
Is there a software counterpart?
Things they did:+_%$#@&
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
9
How do You Measure Cycle Time?
STATIC CYCLE TIME
The average of the actual cycle times (CT)experienced by some number (n) of products
CT1 + CT2 + CT3 + CT4 +...+ CTn
nCycle Time =
But this is not always easy to measure when many of the products are only partway through the process
… so we need a dynamic measure
10Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
10
Dynamic Cycle Time
Cycle Time = WIP (products being developed)
THROUGHPUT (products produced/unit time)
The total work in process divided by the throughput of the process
WIP = Work in Process For related background, see Gross and Harris, in reference list, p83.
11Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
11
Doing every process step faster? Working longer hours? Piling up work?
Faster!!!Faster!!!
How is Cycle Time Improved?
12Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
12
Improving the Process
Cycle Time Improvement Is …
13Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
13
Improving the Process
Reducing the Critical Path
Cycle Time Improvement Is …
14Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
14
Improving the Process
Reducing the Critical Path
Eliminating Waits, Queues, Bottlenecks
Cycle Time Improvement Is …
15Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
15
Improving the Process
Reducing the Critical Path
Eliminating Waits, Queues, Bottlenecks
Helping People work Smarter
Cycle Time Improvement Is …
16Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
16
Improving the Process
Reducing the Critical Path
Eliminating Waits, Queues, Bottlenecks
Helping People work Smarter
Increased Cycles of Learning
Cycle Time Improvement Is …
17Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
17
Improving the Process
Reducing the Critical Path
Eliminating Waits, Queues, Bottlenecks
Helping People work Smarter
Increased Cycles of Learning
Reengineering the Process
Cycle Time Improvement Is …
18Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
18
Three Fundamental Problems
Variability– Some parts of the process are starved while
other parts are producing excessive output– Performance becomes inconsistent and
unreliable– This is what causes traffic jams!
Complex Processes– More work to do than is necessary– More opportunities to make mistakes
Bottlenecks and Constraints– Things that slow everything down
19Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
19
Typical Causes ofCycle Time Problems
Variability Complexity Bottlenecks
MisplacedPriorities
IncompatibleTools
InefficientProcedures
PoorPlanning
etc.
20Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
20
Spotting the Symptoms and the Opportunities
Symptom: excess WIP or “work in process”
– work waiting to be done that is not being done -- waiting in queues instead
– something is holding up the process
Causes: limited capacity, bottlenecks, poor processes, poor execution, various barriers imposed by the organization
Cycle Time = WIP (products being developed)
THROUGHPUT (products produced/unit time)
21Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
21
Examples of Excessive WIPfor Software
Code waiting to be tested─ Not enough test equipment?─ Poor test planning?
Designs waiting to be coded
Specifications waiting to be inspected
Change requests waiting for approval
People waiting for the network to come up
… Hundreds more...
22Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
22
Other Symptoms ofCycle Time Problems
Long waits and queues High inventory levels Excessive overtime High levels of rework / scrap
Tickets -->Tickets -->
How long isthis line?
How long isthis line?
23Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
23
Reducing Rework - The Impact of Defects on Cycle Time
ProcessStep
Undetected
Defect
Several Steps
ProcessStep
Defect Detected
24Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
24
Doing it Over Again
ProcessStep
Undetected
Defect
Several Steps
ProcessStep
Defect Detected
Rework costs money and time
25Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
25
Look for Rework
REWORK is anything you do because you didn’t do it right the first time– debugging– correcting documentation– correcting designs– correcting requirements– retesting– responding to customer complaints
26Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
26
Isn’t Rework Inevitable?
SOME rework is necessary, but much of it is not
Total rework is a measure of process efficiency
You probably have a lot more rework than you think
Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
27
Fixing the Problems --Five Principles of Cycle Time Improvement
Warning … some of these are counter-intuitive
28Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
28
Where are the Opportunities?
~30% of the improvement comes from technical changes
– Process changes
– Tool changes
– Changing rules and operations
29Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
29
Where are the Opportunities?
~70% of the improvement comes from organizational, cultural and environmental changes, such as
– Education
– Communication
– Management
– Teamwork
30Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
30
Principle #1
Don’t optimize only your local part of the process
Speeding up every step of the process will cost a lot and will not help as much as speeding up the bottlenecks
Beware of inappropriate reward systems!
Look at the Entire Process
31Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
31
Example Process – Pizza Shop
Pizza OvenPizza Oven
ToppingsToppings
CrustCrust
BoxBox
SlicerSlicer
DeliverDeliver
Take OrderTake Order Where could
the bottlenecks
be?
Where could the
bottlenecks be?
32Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
32
Gain from Cycles of Learning
Changes are received and processed here ()
Sometimes it is better to do the job many times, in small chunks, than to do it all at
once
Principle #2
33Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
33
Ways to Implement the Cycles of Learning Principle
Try a new compiler or debugging tool on one module first to see how well it works– Then decide whether to use it on more
modules Write one module using the new language
– Then decide whether to use the new language on a larger scale
Take one subset of the features through the whole process flow first to work out the quirks
Test server performance using dummy data
34Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
34
Principle #3
Important when requirements change a lot or the process is new
The work to be done
Small batch principle
- allows for finding errors and requirements changes without large amounts of rework
Batch 1Rework
Batch 2Rework
Batch 3 Batch 4 Batch 5
Use Small Batches
35Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
35
Principle #4
– Lots of entrances and exits– Vehicles of different sizes
and speeds– Some drivers uncertain of
what they want to do– Lots of stoplights to
“control” the flow (mainly to prevent collisions)
– Note: streets are usually crowded
The typical process runs unevenly, like vehicles on a city street
Aim for Smooth Flow
36Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
36
The Ideal is Smooth Flow
The ideal process flows smoothly, like a train running on tracks
– Note: tracks are empty most of the time
37Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
37
What Prevents Smooth Flow?
Bottlenecks and constraints that lead to:
– Queues and waits
– Work in process
For example:– Work piling up– Machines or software not
being available– Excessive approval
requirements
– People pulled off projects– Excessive rework– Product stuck in test
Incoming work
38Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
38
Principle #5
Such as …– Shortening the longest step of the
process
– Shortening every step of the process
– Cutting the overhead without assessing the impact of the cut
Avoid the Naïve, Obvious and Wrong Solutions to Cycle Time Problems
39Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
39
Productivity is ...
The quality or state of being productive
Webster’s 9th New Collegiate Dictionary
Productive:Having the power of producing;
Yielding or furnishing results, benefits, or profits
Webster’s 9th New Collegiate Dictionary
40Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
40
Productivity is NOT being ...
Busy Industrious Virtuous
Productivity has to do with results (what and how much you produce), not with the means or
methods of production or the characteristics of the producer
Wealthy Hardworking etc.
41Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
41
Measuring Productivity
Productivity is usually measured in terms of how much you produce in relation to how much you invest
Productivity = Output
Input or Investment
42Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
42
Productivity Measures
Products produced per labor hour
Return on investment
Bushels of grain per acre of land
Modules tested per week
Requirements validated per day
A farmer who invents a new method of growing that doubles the output per acre would be more productive than a farmer
who works longer hours and doubles output per acre.
Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
43
A Few Lessons Learned
44Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
44
Lesson Learned
Be Careful Whom you Reward Know the difference between busy and
productive Examine the value produced, not the
effort spent
Employee A•Works 8am – 9pm
Employee B•Works 8am – 5pm
• Produces 10 code units per month
• Produces 3 bugs per unit
• Produces 12 code units per month
• Produces 1.5 bugs per unit
45Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
45
Practitioners generally focus on their work and on what they THINK is happening rather than on what IS happening
– They tend not to see all of the waits, queues, etc. that they cause themselves
– Their perception of how they spend their time is generally incorrect
– They are too busy getting the job done to see how they might improve it
Lesson Learned
Independent Observers May See Problems and Opportunities the Best
46Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
46
Just as athletes rely on coaches, software engineers need to learn to trust in others to observe and help them do better
The Athletic Coach Analogy
47Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
47
Lesson Learned
Software Developers AreAccustomed to Improving Cycle Time
Think of your software development process as a large computer program that runs too slow. > How would you make it run faster?
Imagine how you would speed up a computer program …….
Then draw analogies to the software development process …
And improve the process the way you would improve a program
48Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
48
Summary
Background - Why Cycle Time is Important– Cycle Time Reduction Issues and
Examples– Defining Cycle Time
Three Fundamental Problems Typical Causes Spotting the Symptoms and
Opportunities Fixing the Problems - Five Principles A Few Lessons Learned
49Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
49
References
Deming, W. Edwards, Out of the Crisis, MIT Press, 1982.
Goldratt, Eliyahu M. & Jeff Cox, The Goal, (North River Press, 1984.) Also, Theory of Constraints, It’s Not Luck, and Critical Chain Management.
Gross and Harris, Fundamentals of Queueing Theory (Wiley).
Swartz, James B., The Hunters and the Hunted, (Portland, Oregon, Productivity Press, 1994) ISBN 1-56327-043-9.
Copyright © 1995-2014, Dennis J. Frailey
Reducing SW Cycle Time
50
END
Questions?Comments?