the empirical process at agile india 2012

197
The Empirical Process - at the very core of agile everything Daniel Brolund @danielbrolund [email protected]

Upload: danielbrolund

Post on 14-Jan-2015

464 views

Category:

Business


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: The empirical process at Agile India 2012

The Empirical Process

- at the very core of agile everything

Daniel Brolund @danielbrolund [email protected]

Page 2: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Lets start with an exercise!

Page 3: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

Lets start with an exercise!

Page 4: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

Lets start with an exercise!

Page 5: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

Robot

Lets start with an exercise!

Page 6: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Lets start with an exercise!

Page 7: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Lets start with an exercise!

↑↰

P

D

Page 8: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Goal: Max nr of paper balls in dropzone!

Lets start with an exercise!

↑↰

P

D

Page 9: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Discussion - groups of 4-6

Page 10: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What happened?

Discussion - groups of 4-6

Page 11: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Page 12: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Me

Page 13: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Me

Page 14: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Me

Page 15: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Me

Page 16: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Me

Page 17: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Me

Page 18: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Me

Page 19: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Me

Do I jump in...?

Page 20: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Schematic: Me

Do I jump in...?

Page 21: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Desired

Schematic: Me

Do I jump in...?

Page 22: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Desired

Desired

Schematic: Me

Do I jump in...?

Page 23: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Desired

Desired

Controller

Schematic: Me

Do I jump in...?

Page 24: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

ControllerDesired

Desired

Controller

Schematic: Me

Do I jump in...?

Page 25: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

ControllerDesired

Desired

Systeminput

Controller

Schematic: Me

Do I jump in...?

Page 26: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

ControllerDesired

Systeminput

Desired

Systeminput

Controller

Schematic: Me

Do I jump in...?

Page 27: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

ControllerDesired

Systeminput

Desired

Systeminput

Controller

System

Schematic: Me

Do I jump in...?

Page 28: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Controller SystemDesired

Systeminput

Desired

Systeminput

Controller

System

Schematic: Me

Do I jump in...?

Page 29: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Controller SystemDesired

Systeminput

Desired

Systeminput

ActualController

System

Schematic: Me

Do I jump in...?

Page 30: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Schematic: Me

Do I jump in...?

Page 31: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Schematic: Me

Do I jump in...?

Page 32: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Time

Schematic: MeTemp

Do I jump in...?

Page 33: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Time

Desired

Schematic: MeTemp

Do I jump in...?

Page 34: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Actual

Time

Desired

Schematic: MeTemp

Do I jump in...?

Page 35: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Actual

Time

Desired

Schematic: MeTemp

Do I jump in...?

Page 36: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Actual

Time

Desired

Schematic: MeTemp

Do I jump in...?

Page 37: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Actual

Time

Desired

Schematic: MeTemp

Do I jump in...?

Page 38: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

?Actual

Time

Desired

Schematic: MeTemp

Do I jump in...?

Page 39: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Actual

Time

Desired

Schematic: MeTemp

Do I jump in...?

Robot

Page 40: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What is the control error?

Page 41: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Time

What is the control error?Temp

Page 42: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Time

Desired

What is the control error?Temp

Page 43: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Actual

Time

Desired

What is the control error?Temp

Page 44: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Actual

Time

Desired

What is the control error?Temp

Page 45: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Actual

Time

Desired

What is the control error?Temp

"Error surface"

Page 46: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Actual

Time

Desired

Control Error = ∫|Desired-Actual|

What is the control error?Temp

"Error surface"

Page 47: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Actual

Time

Desired

Control Error = ∫|Desired-Actual|

What is the control error?Temp

"Error surface"

Time

Control error

Page 48: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Actual

Time

Desired

Control Error = ∫|Desired-Actual|

What is the control error?Temp

"Error surface"

Time

Control error

Page 49: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Actual

Time

Desired

Control Error = ∫|Desired-Actual|

What is the control error?Temp

"Error surface"

Time

Control error∞

Page 50: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The "simplistic" solution

Controller SystemActualDesired

Systeminput

Page 51: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The "simplistic" solution

Controller SystemActualDesired

Systeminput Controller=(System)-1

Page 52: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The "simplistic" solution

Controller SystemActualDesired

Systeminput Controller=(System)-1

⇒Desired = Actual

Page 53: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The "simplistic" solution

Controller SystemActualDesired

Systeminput Controller=(System)-1

⇒Desired = Actual

Requires: - detailed knowledge of System, Desired and hence Actual - that such a Controller exists and can create such System input- that the System can handle System input

Page 54: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The "simplistic" solution

Controller SystemActualDesired

Systeminput Controller=(System)-1

⇒Desired = Actual

Requires: - detailed knowledge of System, Desired and hence Actual - that such a Controller exists and can create such System input- that the System can handle System input

Errorsε

Page 55: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The "simplistic" solution

Controller SystemActualDesired

Systeminput Controller=(System)-1

⇒Desired = Actual

Requires: - detailed knowledge of System, Desired and hence Actual - that such a Controller exists and can create such System input- that the System can handle System input

Errorsε

"Unlimited"energy

Page 56: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The "simplistic" solution

Controller SystemActualDesired

Systeminput Controller=(System)-1

⇒Desired = Actual

Requires: - detailed knowledge of System, Desired and hence Actual - that such a Controller exists and can create such System input- that the System can handle System input

Errorsε

Change"Unlimited"

energy

Page 57: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The "simplistic" solution

Controller SystemActualDesired

Systeminput Controller=(System)-1

⇒Desired = Actual

Requires: - detailed knowledge of System, Desired and hence Actual - that such a Controller exists and can create such System input- that the System can handle System input

Errorsε

Change"Unlimited"

energy

Complexity

Page 58: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The "simplistic" solution

Controller SystemActualDesired

Systeminput Controller=(System)-1

⇒Desired = Actual

Requires: - detailed knowledge of System, Desired and hence Actual - that such a Controller exists and can create such System input- that the System can handle System input

Errorsε

Change"Unlimited"

energy

Complexity

Won't work in reality

Page 59: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

Robot

Controller

Exercise 2

Page 60: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

Robot

Controller

Exercise 2

As before, but now only one step at a time!

Page 61: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

Robot

Controller

Exercise 2

As before, but now only one step at a time!

Page 62: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

Robot

Controller

Exercise 2

↑↰

As before, but now only one step at a time!

Page 63: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

Robot

Controller

Exercise 2

↑↰↑

As before, but now only one step at a time!

Page 64: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

Robot

Controller

Exercise 2

↑↰

P

As before, but now only one step at a time!

Page 65: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

Robot

Controller

Exercise 2

↑↰

P

As before, but now only one step at a time!

Page 66: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

Robot

Controller

Exercise 2

↑↰

P

As before, but now only one step at a time!

Page 67: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

Robot

Controller

Exercise 2

↑↰

P

D

As before, but now only one step at a time!

Page 68: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Discussion - groups of 4-6

Page 69: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What happened this time?

Discussion - groups of 4-6

Page 70: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

Adding feedback!

Systeminput

ActualController

Me

Desired

System

Page 71: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — [email protected]

Adding feedback!

Systeminput

ActualController

Me

Desired

System

Page 72: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — [email protected]

Adding feedback!

Systeminput

ActualController

Me

Desired

System

Page 73: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — [email protected]

Adding feedback!

Sensor

Systeminput

ActualController

Me

Desired

System

Page 74: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — [email protected]

Adding feedback!

Sensor

Observed result

Systeminput

ActualController

Me

Desired

System

Page 75: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — [email protected]

Adding feedback!

Sensor

SensorObserved result

Observed result

Systeminput

ActualController

Me

Desired

System

Page 76: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — [email protected]

Adding feedback!

Sensor

Error-

SensorObserved result

Observed result

Systeminput

ActualController

Me

Desired

System

Page 77: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — [email protected]

Adding feedback!

Feed-back or Closed-loop system

Sensor

Error-

SensorObserved result

Observed result

Systeminput

ActualController

Me

Desired

System

Page 78: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — [email protected]

Adding feedback!

Feed-back or Closed-loop system

Sensor

Error-

SensorObserved result

Time

Temp

Observed result

Systeminput

ActualController

Me

Desired

System

Page 79: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — [email protected]

Adding feedback!

Feed-back or Closed-loop system

Sensor

Error-

SensorObserved result

Time

Desired

Temp

Observed result

Systeminput

ActualController

Me

Desired

System

Page 80: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — [email protected]

Adding feedback!

Feed-back or Closed-loop system

Sensor

Error-

SensorObserved result Actual

Time

Desired

Temp

Observed result

Systeminput

ActualController

Me

Desired

System

Page 81: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — [email protected]

Adding feedback!

Feed-back or Closed-loop system

Sensor

Error-

SensorObserved result Actual

Time

Desired

Temp

Observed result

Systeminput

ActualController

Me

Desired

System

Page 82: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What is the control error now?

Page 83: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What is the control error now?

Actual

Desired

Temp

Page 84: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What is the control error now?

Actual

Desired

Temp

Page 85: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Control Error = ∫|Desired-Actual|

What is the control error now?

Actual

Desired

Temp

Page 86: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Control Error = ∫|Desired-Actual|

What is the control error now?

Actual

Desired

Temp

Page 87: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Control Error = ∫|Desired-Actual|

What is the control error now?

Time

Control error

Actual

Desired

Temp

Page 88: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Control Error = ∫|Desired-Actual|

What is the control error now?

Actual

Time

Control error

Actual

Desired

Temp

Page 89: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Control Error = ∫|Desired-Actual|

What is the control error now?

Actual

Time

Control error

bounded!!

Actual

Desired

Temp

Page 90: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

In software: There are many feedback loops at play!

Page 91: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

In software: There are many feedback loops at play!

Page 92: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Live user feedback/release

In software: There are many feedback loops at play!

Page 93: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Live user feedback/release Usability tests

In software: There are many feedback loops at play!

Page 94: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Live user feedback/release Usability tests

In software: There are many feedback loops at play!

Page 95: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Retrospective

Live user feedback/release Usability tests

In software: There are many feedback loops at play!

Page 96: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Retrospective

Live user feedback/release Usability tests

Whiteboard discussions

In software: There are many feedback loops at play!

Page 97: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Whiteboard discussions

In software: There are many feedback loops at play!

Page 98: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Whiteboard discussions

In software: There are many feedback loops at play!

Page 99: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

ATDD

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Whiteboard discussions

In software: There are many feedback loops at play!

Page 100: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

TDD

ATDD

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Whiteboard discussions

In software: There are many feedback loops at play!

Page 101: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

TDD

ATDD

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Whiteboard discussions

In software: There are many feedback loops at play!

Page 102: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

TDD

ATDD

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Pairing

Whiteboard discussions

In software: There are many feedback loops at play!

Page 103: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

TDD

ATDD

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Compilation Pairing

Whiteboard discussions

In software: There are many feedback loops at play!

Page 104: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

SquigglesTDD

ATDD

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Compilation Pairing

Whiteboard discussions

In software: There are many feedback loops at play!

Page 105: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

SquigglesTDD

ATDD

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Compilation Pairing

Whiteboard discussions

In software: There are many feedback loops at play!

...AND MANY MORE!

Page 106: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Exercise 3: Draw your own feedback loops

TDD 10s

Retros 1w

Release 1m

Page 107: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

Page 108: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

As before, but now now three steps at a

time!

Page 109: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

↑As before, but now now three steps at a

time!

Page 110: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

↑↰

As before, but now now three steps at a

time!

Page 111: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

↑↰↑

As before, but now now three steps at a

time!

Page 112: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

↑↰↑

As before, but now now three steps at a

time!

Page 113: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

↑↰

P

As before, but now now three steps at a

time!

Page 114: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

↑↰

P

As before, but now now three steps at a

time!

Page 115: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

↑↰

P

As before, but now now three steps at a

time!

Page 116: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

↑↰

P

As before, but now now three steps at a

time!

Page 117: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

↑↰

P

As before, but now now three steps at a

time!

Page 118: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

↑↰

P

As before, but now now three steps at a

time!

Page 119: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Drop-zone

RobotController

Exercise 4

↑↰

P

D

As before, but now now three steps at a

time!

Page 120: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Discussion - groups of 4-6

Page 121: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What happened this time?

Discussion - groups of 4-6

Page 122: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

The impact of delay

Systeminput

ActualController

System

Sensor

Me

Desired

Page 123: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

The impact of delay

Systeminput

ActualController

System

Sensor

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Page 124: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

The impact of delay

Systeminput

ActualController

System

Sensor

Delay

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Page 125: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

The impact of delay

Systeminput

ActualController

System

Sensor

Delay

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Delay

Page 126: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

The impact of delay

Systeminput

ActualController

System

Sensor

Time

Temp

Delay

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Delay

Page 127: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

The impact of delay

Systeminput

ActualController

System

Sensor

Time

Desired

Temp

Delay

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Delay

Page 128: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

The impact of delay

Systeminput

ActualController

System

Sensor

Time

Desired

Temp

Delay

Tap temp

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Delay

Page 129: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

The impact of delay

Systeminput

ActualController

System

Sensor

Time

Desired

Temp

Delay

Tap temp

Tap tempError

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Delay

Page 130: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

The impact of delay

Systeminput

ActualController

System

Sensor

Time

Desired

Temp

Delay

Tap temp

Tap temp

Tap temp

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Delay

Page 131: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

The impact of delay

Systeminput

ActualController

System

Sensor

Observed result

Time

Desired

Temp

Delay

Tap temp

Tap temp

Tap temp

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Delay

Page 132: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]

The impact of delay

Systeminput

ActualController

System

Sensor

Observed result

Time

Desired

Temp

Delay

Tap temp

Tap temp

Tap temp

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Delay

Page 133: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Delay considerations

Page 134: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Observed result

Desired

Temp

Tap temp

Delay considerations

Page 135: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Observed result

Desired

Temp

Tap temp

Delay considerations

delay > half of required cycletime ⇒

Guaranteed instability!(in practice, instability comes earlier)

Page 136: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Observed result

Desired

Temp

Tap temp

Delay considerations

delay > half of required cycletime ⇒

Guaranteed instability!(in practice, instability comes earlier)

It often takes about 5-10 times the delay to tune the system

Page 137: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

More delay considerations

Page 138: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

-

Page 139: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

Delay position in loop is irrelevant w.r.t. instability!

-

Page 140: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

DelayDelay position in loop is irrelevant w.r.t. instability!

-

Page 141: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

Delay position in loop is irrelevant w.r.t. instability!

-

Delay

Page 142: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

Delay

Delay position in loop is irrelevant w.r.t. instability!

-

Page 143: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

DelayDelay position in loop is irrelevant w.r.t. instability!

-

Page 144: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

DelayDelay position in loop is irrelevant w.r.t. instability!

-

Page 145: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Feedback delay considerations

Page 146: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Feedback cycle-time sweet-spots are different due to

processing and delays

Feedback delay considerations

Page 147: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Feedback cycle-time sweet-spots are different due to

processing and delays

Feedback delay considerations

slower that desired change ⇒

Unstable system

Page 148: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Feedback cycle-time sweet-spots are different due to

processing and delays

Feedback delay considerations

slower that desired change ⇒

Unstable system

faster than desired change⇒

Controller overloaded or too expensive

Page 149: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Feedback cycle-time sweet-spots are different due to

processing and delays

Feedback delay considerations

slower that desired change ⇒

Unstable system

faster than desired change⇒

Controller overloaded or too expensive

You want to shorten inner

feedback loops before outer!

Page 150: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Observability and controllability

Page 151: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Observability and controllability

-

Page 152: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Observability and controllability

-

Page 153: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

-

Page 154: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

-

Page 155: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

-

Page 156: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

Water temperature

-

Page 157: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

Water temperature

Flow

-

Page 158: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

Water temperature

Flow Acidity

-

Page 159: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

Water temperature

Mineral tracesFlow Acidity

-

Page 160: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

Water temperature

Mineral traces

Radioactivity

Flow Acidity

-

Page 161: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

Water temperature

Mineral traces

Radioactivity

Flow Acidity

-

SW

Page 162: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Lines of code

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

Water temperature

Mineral traces

Radioactivity

Flow Acidity

-

SW

Page 163: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Lines of code

Unit test results

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

Water temperature

Mineral traces

Radioactivity

Flow Acidity

-

SW

Page 164: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Lines of code

Unit test results

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

ROI

Water temperature

Mineral traces

Radioactivity

Flow Acidity

-

SW

Page 165: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Lines of code

Unit test results

Acceptance test results

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

ROI

Water temperature

Mineral traces

Radioactivity

Flow Acidity

-

SW

Page 166: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Lines of code

Unit test results

Acceptance test results

Nr of checkins

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

ROI

Water temperature

Mineral traces

Radioactivity

Flow Acidity

-

SW

Page 167: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Lines of code

Unit test results

Acceptance test results

Nr of checkins Request statistics

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

ROI

Water temperature

Mineral traces

Radioactivity

Flow Acidity

-

SW

Page 168: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Lines of code

Unit test results

Acceptance test results

Nr of checkins Request statistics

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

User satisfaction

ROI

Water temperature

Mineral traces

Radioactivity

Flow Acidity

-

SW

Page 169: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

The Sensor has to measure

a relevant state (observability) that the

Controller can influence (controllability).

Lines of code

Unit test results

Acceptance test results

Nr of checkins Request statistics

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

User satisfactionUsability

ROI

Water temperature

Mineral traces

Radioactivity

Flow Acidity

-

SW

Page 170: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Noise

Page 171: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Signal

Noise

Page 172: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

+

NoiseSignal

Noise

Page 173: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

+ =

Huh?NoiseSignal

Noise

Page 174: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

+ =

Huh?NoiseSignal

Signals must be filtered from noise. ⇒ Delays

⇒ Lower communication bandwidth

Noise

Page 175: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

+ =

Huh?NoiseSignal

Signals must be filtered from noise. ⇒ Delays

⇒ Lower communication bandwidth

Noise

In SW-development, noise can be - Irrelevant information - Disinformation

Page 176: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Discussion - groups of 4-6

Page 177: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What was the delay in the robot exercises?

Discussion - groups of 4-6

Page 178: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What was the delay in the robot exercises?

Discussion - groups of 4-6

What could you observe?

Page 179: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What was the delay in the robot exercises?

Discussion - groups of 4-6

What could you observe? What could you control?

Page 180: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What was the delay in the robot exercises?

Discussion - groups of 4-6

What could you observe? What could you control?

What was the noise?

Page 181: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What was the delay in the robot exercises?

Discussion - groups of 4-6

What could you observe? What could you control?

What was the noise?

What was the signal?

Page 182: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

What was the delay in the robot exercises?

Discussion - groups of 4-6

What could you observe? What could you control?

How did all that affect you?

What was the noise?

What was the signal?

Page 183: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

Is feed-forward waste?

-

Page 184: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

Is feed-forward waste?

-

Page 185: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

Feed-forward using the Controller is application of a priori knowledge.

We always need some of it to avoid re-inventing wheels.

Is feed-forward waste?

-

Page 186: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

Feed-forward using the Controller is application of a priori knowledge.

We always need some of it to avoid re-inventing wheels.

TDD

Is feed-forward waste?

-

Page 187: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

Feed-forward using the Controller is application of a priori knowledge.

We always need some of it to avoid re-inventing wheels.

TDD

ATDD

Is feed-forward waste?

-

Page 188: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

Feed-forward using the Controller is application of a priori knowledge.

We always need some of it to avoid re-inventing wheels.

TDD

ATDD Daily standups

Is feed-forward waste?

-

Page 189: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

Feed-forward using the Controller is application of a priori knowledge.

We always need some of it to avoid re-inventing wheels.

TDD

ATDD

Iterations

Daily standups

Is feed-forward waste?

-

Page 190: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

Feed-forward using the Controller is application of a priori knowledge.

We always need some of it to avoid re-inventing wheels.

TDD

ATDD

Iterations

Daily standupsContinuous integration

Is feed-forward waste?

-

Page 191: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

Feed-forward using the Controller is application of a priori knowledge.

We always need some of it to avoid re-inventing wheels.

TDD

ATDD

Iterations

Daily standupsContinuous integration

Retrospectives

Is feed-forward waste?

-

Page 192: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

Feed-forward using the Controller is application of a priori knowledge.

We always need some of it to avoid re-inventing wheels.

TDD

ATDD

Iterations

Daily standupsContinuous integration

Deployment environments

Retrospectives

Is feed-forward waste?

-

Page 193: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

• How can you break the empirical process? What part?

• Controller?

• System?

• Sensor?

• Desired?

Failure modes - discussion in groups

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

-

Page 194: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

• What does the following do to your feedback loops?

• Trust?

• Distrust?

• Lies?

• Care?

• What is noise according to you?

• What other "soft" issues will affect the system? How?

"Softer" issues - discussion in groups

Page 196: The empirical process at Agile India 2012

Daniel Brolund — @danielbrolund — [email protected]

• Introduce feedback!

• Tune and prune the Sensors.

• Shorten inner feedback loops before outer.

• Reduce delays.

• Reduce noise.

Some of my best advice...