queueing theory in software development - alebathtub 2011-06-30

43
Queueing theory in software development Håkan Forss - [email protected] - @hakanf

Post on 20-Oct-2014

2.125 views

Category:

Technology


4 download

DESCRIPTION

This is the slides from the ALEBathtub.In this session you will learn about queuing theory and Theory of Constrains. By using real world examples of different traffic situations in Stockholm, illustrations and examples from Kanban boards you will see the similarities between them. You will lean how you can apply Theory of Constrains to find the bottleneck in your development process and how you can use this to continuously improve your development process.

TRANSCRIPT

Page 1: Queueing theory in software development - ALEBathtub 2011-06-30

Queueing theoryin

software development

Håkan Forss - [email protected] - @hakanforss

Page 2: Queueing theory in software development - ALEBathtub 2011-06-30

Or

Page 3: Queueing theory in software development - ALEBathtub 2011-06-30

What can traffic in

teach you about your

development process

Håkan Forss - [email protected] - @hakanforss

Page 4: Queueing theory in software development - ALEBathtub 2011-06-30

Keep work-in-progress low

Use Theory of Constraints to improve

Balance demand against throughput

Page 5: Queueing theory in software development - ALEBathtub 2011-06-30
Page 6: Queueing theory in software development - ALEBathtub 2011-06-30
Page 7: Queueing theory in software development - ALEBathtub 2011-06-30
Page 8: Queueing theory in software development - ALEBathtub 2011-06-30
Page 9: Queueing theory in software development - ALEBathtub 2011-06-30

Little’s Law

Work-in-Process

ThroughputCycle Time =

Page 10: Queueing theory in software development - ALEBathtub 2011-06-30

Little’s Law

12

12 / min1 min =

Page 11: Queueing theory in software development - ALEBathtub 2011-06-30

Little’s Law

6

12 / min0,5 min=

Page 12: Queueing theory in software development - ALEBathtub 2011-06-30

Little’s Law

24

12 / min2 min =

Page 13: Queueing theory in software development - ALEBathtub 2011-06-30

4 cars / min

8 cars / min

• With less work-in-progress– Shorter cycle time• Faster feedback

– Makes problems visible faster

Page 14: Queueing theory in software development - ALEBathtub 2011-06-30

Keep work-in-progress low

Use Theory of Constraints to improve

Balance demand against throughput

Page 15: Queueing theory in software development - ALEBathtub 2011-06-30

Theory of Constraints

Page 16: Queueing theory in software development - ALEBathtub 2011-06-30
Page 17: Queueing theory in software development - ALEBathtub 2011-06-30
Page 18: Queueing theory in software development - ALEBathtub 2011-06-30

Improve

5

Page 19: Queueing theory in software development - ALEBathtub 2011-06-30

1. Identify the constraint

2. Exploit the constraint

3. Subordinate to the constraint

4. Elevate the constraint

5. If in the previous steps a constraint has been broken, Go back to step 1

Don’t allow inertia to cause a system constraint.

Page 20: Queueing theory in software development - ALEBathtub 2011-06-30

Capacity = 6 Capacity = 4 Capacity = 6

Throughput = 4

Bottlenecks

• You can never go faster than your bottleneck

Page 21: Queueing theory in software development - ALEBathtub 2011-06-30

Bottlenecks

Throughput = 2

• You can never go faster than your bottleneck– Do whatever you can to make your bottleneck 100% utilized – Try your hardest to avoid problems at you bottleneck – You can’t make up for lost capacity at you bottleneck

Page 22: Queueing theory in software development - ALEBathtub 2011-06-30

Throughput = 4

• You can never go faster than your bottleneck– As long as capacity in front of the bottleneck is equal to or grater than the

bottleneck you will go as fast as your bottleneck– Full use of a higher capacity in front of the bottleneck will make cycle time

go up

Bottlenecks

Page 23: Queueing theory in software development - ALEBathtub 2011-06-30

Throughput = 4

• You can never go faster than your bottleneck– As long as capacity is equal to or grater after the bottleneck you will go as

fast as your bottleneck– Higher capacity after the bottleneck than at the bottleneck will not improve

throughput

Bottlenecks

Page 24: Queueing theory in software development - ALEBathtub 2011-06-30
Page 25: Queueing theory in software development - ALEBathtub 2011-06-30
Page 26: Queueing theory in software development - ALEBathtub 2011-06-30
Page 27: Queueing theory in software development - ALEBathtub 2011-06-30
Page 28: Queueing theory in software development - ALEBathtub 2011-06-30
Page 29: Queueing theory in software development - ALEBathtub 2011-06-30
Page 30: Queueing theory in software development - ALEBathtub 2011-06-30
Page 31: Queueing theory in software development - ALEBathtub 2011-06-30
Page 32: Queueing theory in software development - ALEBathtub 2011-06-30

• Non-instant availability resource– A resource that is not available all the time

Page 33: Queueing theory in software development - ALEBathtub 2011-06-30

• Non-instant availability resource & bottleneck

Page 34: Queueing theory in software development - ALEBathtub 2011-06-30
Page 35: Queueing theory in software development - ALEBathtub 2011-06-30
Page 36: Queueing theory in software development - ALEBathtub 2011-06-30

Keep work-in-progress low

Use Theory of Constraints to improve

Balance demand against throughput

Page 37: Queueing theory in software development - ALEBathtub 2011-06-30
Page 38: Queueing theory in software development - ALEBathtub 2011-06-30

• You can never go faster than your bottleneck– Balance demand against throughput to keep work-in-progress low– Low work-in-progress

• Keeps cycle time down • Makes bottlenecks visible faster

Page 39: Queueing theory in software development - ALEBathtub 2011-06-30
Page 40: Queueing theory in software development - ALEBathtub 2011-06-30

• Slow down to go faster – Slowing down can stabilize the process flow– A stable process can go faster

Page 41: Queueing theory in software development - ALEBathtub 2011-06-30
Page 42: Queueing theory in software development - ALEBathtub 2011-06-30

Keep work-in-progress low• Keeps cycle time down • Makes bottlenecks visible faster

Use Theory of Constraints to improve• Use five focusing steps• Eliminate one bottleneck at a time

Balance demand against throughput • You can’t go faster than the bottleneck• Use work-in-progress limits

Page 43: Queueing theory in software development - ALEBathtub 2011-06-30

Håkan ForssMail: [email protected]: @hakanforssBlog: http://hakanforss.wordpress.com/