Copyright © 1995-2014, Dennis J. FraileyReducing SW Cycle Time 1 Meeting Tight Software Schedules...

Preview:

Citation preview

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 COFrailey@ACM.ORG

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?

Recommended