the empirical process at agile india 2012

Post on 14-Jan-2015

464 Views

Category:

Business

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

The Empirical Process

- at the very core of agile everything

Daniel Brolund @danielbrolund daniel.brolund@agical.com

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Lets start with an exercise!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

Lets start with an exercise!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

Lets start with an exercise!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

Robot

Lets start with an exercise!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Lets start with an exercise!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Lets start with an exercise!

↑↰

P

D

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Goal: Max nr of paper balls in dropzone!

Lets start with an exercise!

↑↰

P

D

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Discussion - groups of 4-6

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

What happened?

Discussion - groups of 4-6

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Me

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Me

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Me

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Me

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Me

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Me

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Me

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Schematic: Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Desired

Schematic: Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Desired

Desired

Schematic: Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Desired

Desired

Controller

Schematic: Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

ControllerDesired

Desired

Controller

Schematic: Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

ControllerDesired

Desired

Systeminput

Controller

Schematic: Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

ControllerDesired

Systeminput

Desired

Systeminput

Controller

Schematic: Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

ControllerDesired

Systeminput

Desired

Systeminput

Controller

System

Schematic: Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Controller SystemDesired

Systeminput

Desired

Systeminput

Controller

System

Schematic: Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Controller SystemDesired

Systeminput

Desired

Systeminput

ActualController

System

Schematic: Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Schematic: Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Schematic: Me

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Time

Schematic: MeTemp

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Time

Desired

Schematic: MeTemp

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Actual

Time

Desired

Schematic: MeTemp

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Actual

Time

Desired

Schematic: MeTemp

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Actual

Time

Desired

Schematic: MeTemp

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Actual

Time

Desired

Schematic: MeTemp

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

?Actual

Time

Desired

Schematic: MeTemp

Do I jump in...?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

An everyday empirical process...

Actual==Desired ?

Controller SystemActualDesired

Systeminput

Desired

Systeminput

ActualController

System

Actual

Time

Desired

Schematic: MeTemp

Do I jump in...?

Robot

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

What is the control error?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Time

What is the control error?Temp

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Time

Desired

What is the control error?Temp

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Actual

Time

Desired

What is the control error?Temp

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Actual

Time

Desired

What is the control error?Temp

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Actual

Time

Desired

What is the control error?Temp

"Error surface"

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Actual

Time

Desired

Control Error = ∫|Desired-Actual|

What is the control error?Temp

"Error surface"

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Actual

Time

Desired

Control Error = ∫|Desired-Actual|

What is the control error?Temp

"Error surface"

Time

Control error

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Actual

Time

Desired

Control Error = ∫|Desired-Actual|

What is the control error?Temp

"Error surface"

Time

Control error

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Actual

Time

Desired

Control Error = ∫|Desired-Actual|

What is the control error?Temp

"Error surface"

Time

Control error∞

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

The "simplistic" solution

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

The "simplistic" solution

Controller SystemActualDesired

Systeminput Controller=(System)-1

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

The "simplistic" solution

Controller SystemActualDesired

Systeminput Controller=(System)-1

⇒Desired = Actual

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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ε

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

Robot

Controller

Exercise 2

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

Robot

Controller

Exercise 2

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

Robot

Controller

Exercise 2

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

Robot

Controller

Exercise 2

↑↰

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

Robot

Controller

Exercise 2

↑↰↑

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

Robot

Controller

Exercise 2

↑↰

P

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

Robot

Controller

Exercise 2

↑↰

P

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

Robot

Controller

Exercise 2

↑↰

P

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

Robot

Controller

Exercise 2

↑↰

P

D

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Discussion - groups of 4-6

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

What happened this time?

Discussion - groups of 4-6

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

Adding feedback!

Systeminput

ActualController

Me

Desired

System

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Adding feedback!

Systeminput

ActualController

Me

Desired

System

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Adding feedback!

Systeminput

ActualController

Me

Desired

System

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Adding feedback!

Sensor

Systeminput

ActualController

Me

Desired

System

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Adding feedback!

Sensor

Observed result

Systeminput

ActualController

Me

Desired

System

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Adding feedback!

Sensor

SensorObserved result

Observed result

Systeminput

ActualController

Me

Desired

System

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Adding feedback!

Sensor

Error-

SensorObserved result

Observed result

Systeminput

ActualController

Me

Desired

System

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Adding feedback!

Feed-back or Closed-loop system

Sensor

Error-

SensorObserved result

Observed result

Systeminput

ActualController

Me

Desired

System

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Adding feedback!

Feed-back or Closed-loop system

Sensor

Error-

SensorObserved result

Time

Temp

Observed result

Systeminput

ActualController

Me

Desired

System

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Adding feedback!

Feed-back or Closed-loop system

Sensor

Error-

SensorObserved result

Time

Desired

Temp

Observed result

Systeminput

ActualController

Me

Desired

System

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Adding feedback!

Feed-back or Closed-loop system

Sensor

Error-

SensorObserved result Actual

Time

Desired

Temp

Observed result

Systeminput

ActualController

Me

Desired

System

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Schematic:

Controller SystemActualDesired

Systeminput

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Adding feedback!

Feed-back or Closed-loop system

Sensor

Error-

SensorObserved result Actual

Time

Desired

Temp

Observed result

Systeminput

ActualController

Me

Desired

System

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

What is the control error now?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

What is the control error now?

Actual

Desired

Temp

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

What is the control error now?

Actual

Desired

Temp

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Control Error = ∫|Desired-Actual|

What is the control error now?

Actual

Desired

Temp

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Control Error = ∫|Desired-Actual|

What is the control error now?

Actual

Desired

Temp

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Control Error = ∫|Desired-Actual|

What is the control error now?

Time

Control error

Actual

Desired

Temp

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Control Error = ∫|Desired-Actual|

What is the control error now?

Actual

Time

Control error

Actual

Desired

Temp

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Control Error = ∫|Desired-Actual|

What is the control error now?

Actual

Time

Control error

bounded!!

Actual

Desired

Temp

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Live user feedback/release

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Live user feedback/release Usability tests

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Live user feedback/release Usability tests

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Retrospective

Live user feedback/release Usability tests

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Retrospective

Live user feedback/release Usability tests

Whiteboard discussions

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Whiteboard discussions

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Whiteboard discussions

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

ATDD

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Whiteboard discussions

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

TDD

ATDD

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Whiteboard discussions

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

TDD

ATDD

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Whiteboard discussions

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

TDD

ATDD

Daily stand-up

Retrospective

Live user feedback/release Usability tests

Pairing

Whiteboard discussions

In software: There are many feedback loops at play!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Exercise 3: Draw your own feedback loops

TDD 10s

Retros 1w

Release 1m

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

As before, but now now three steps at a

time!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

↑As before, but now now three steps at a

time!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

↑↰

As before, but now now three steps at a

time!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

↑↰↑

As before, but now now three steps at a

time!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

↑↰↑

As before, but now now three steps at a

time!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

↑↰

P

As before, but now now three steps at a

time!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

↑↰

P

As before, but now now three steps at a

time!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

↑↰

P

As before, but now now three steps at a

time!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

↑↰

P

As before, but now now three steps at a

time!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

↑↰

P

As before, but now now three steps at a

time!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

↑↰

P

As before, but now now three steps at a

time!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Drop-zone

RobotController

Exercise 4

↑↰

P

D

As before, but now now three steps at a

time!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Discussion - groups of 4-6

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

What happened this time?

Discussion - groups of 4-6

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

The impact of delay

Systeminput

ActualController

System

Sensor

Me

Desired

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

The impact of delay

Systeminput

ActualController

System

Sensor

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

The impact of delay

Systeminput

ActualController

System

Sensor

Delay

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

The impact of delay

Systeminput

ActualController

System

Sensor

Delay

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Delay

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

The impact of delay

Systeminput

ActualController

System

Sensor

Time

Temp

Delay

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Delay

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

The impact of delay

Systeminput

ActualController

System

Sensor

Time

Desired

Temp

Delay

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Delay

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

The impact of delay

Systeminput

ActualController

System

Sensor

Time

Desired

Temp

Delay

Tap temp

Error

-

Schematic:

Controller SystemActualDesired

Systeminput

SensorObserved result

-

Me

Desired

Delay

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.comDaniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Delay considerations

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Observed result

Desired

Temp

Tap temp

Delay considerations

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Observed result

Desired

Temp

Tap temp

Delay considerations

delay > half of required cycletime ⇒

Guaranteed instability!(in practice, instability comes earlier)

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

More delay considerations

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

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

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

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

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

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

-

Delay

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

Delay

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

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

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

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

More delay considerations

Error

- Controller SystemActualDesired

Systeminput

Sensor

Observed result

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

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Feedback delay considerations

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Feedback cycle-time sweet-spots are different due to

processing and delays

Feedback delay considerations

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Feedback cycle-time sweet-spots are different due to

processing and delays

Feedback delay considerations

slower that desired change ⇒

Unstable system

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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!

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Observability and controllability

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Observability and controllability

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Observability and controllability

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Error- Controller System

ActualDesired

Systeminput

SensorObserved result

Uncontrollable

Unobservable

Observability and controllability

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Noise

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Signal

Noise

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

+

NoiseSignal

Noise

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

+ =

Huh?NoiseSignal

Noise

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

+ =

Huh?NoiseSignal

Signals must be filtered from noise. ⇒ Delays

⇒ Lower communication bandwidth

Noise

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

+ =

Huh?NoiseSignal

Signals must be filtered from noise. ⇒ Delays

⇒ Lower communication bandwidth

Noise

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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Discussion - groups of 4-6

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

What was the delay in the robot exercises?

Discussion - groups of 4-6

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

What was the delay in the robot exercises?

Discussion - groups of 4-6

What could you observe?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

What was the delay in the robot exercises?

Discussion - groups of 4-6

What could you observe? What could you control?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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?

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

Is feed-forward waste?

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

Is feed-forward waste?

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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?

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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?

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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?

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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?

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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?

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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?

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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?

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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?

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

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

• Controller?

• System?

• Sensor?

• Desired?

Failure modes - discussion in groups

Error- Controller SystemActualDesired

Systeminput

SensorObserved result

-

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

• 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

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

http://www.azarask.in/blog/post/the-wrong-problem/

Daniel Brolund — @danielbrolund — daniel.brolund@agical.com

• Introduce feedback!

• Tune and prune the Sensors.

• Shorten inner feedback loops before outer.

• Reduce delays.

• Reduce noise.

Some of my best advice...

top related