The empirical process at Agile India 2012
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
702
On Slideshare
702
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
70
Comments
2
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. The Empirical Process - at the very core of agile everythingDaniel Brolund@danielbrolunddaniel.brolund@agical.com
  • 2. Lets start with an exercise!Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 3. Lets start with an exercise! Drop- zoneDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 4. Lets start with an exercise! Drop- zoneDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 5. Lets start with an exercise! Robot Drop- zoneDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 6. Lets start with an exercise! Controller Robot Drop- zoneDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 7. Lets start with an exercise! ↑ Controller Robot ↑ Drop- P zone ↑ DDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 8. Lets start with an exercise! Goal: Max nr of paper balls in dropzone! ↑ Controller Robot ↑ Drop- P zone ↑ DDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 9. Discussion - groups of 4-6Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 10. Discussion - groups of 4-6 What happened?Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 11. An everyday empirical process...Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 12. An everyday empirical process... MeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 13. An everyday empirical process... MeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 14. An everyday empirical process... MeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 15. An everyday empirical process... MeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 16. An everyday empirical process... MeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 17. An everyday empirical process... MeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 18. An everyday empirical process... MeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 19. An everyday empirical process... Do I jump in...? MeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 20. An everyday empirical process... Do I jump in...?Schematic: Me Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 21. An everyday empirical process... Do I jump in...? DesiredSchematic: Me Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 22. An everyday empirical process... Do I jump in...? DesiredSchematic: MeDesired Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 23. An everyday empirical process... Do I jump in...? Desired ControllerSchematic: MeDesired Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 24. An everyday empirical process... Do I jump in...? Desired ControllerSchematic: MeDesired Controller Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 25. An everyday empirical process... Do I jump in...? Desired Controller System inputSchematic: MeDesired Controller Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 26. An everyday empirical process... Do I jump in...? Desired Controller System inputSchematic: Me SystemDesired input Controller Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 27. An everyday empirical process... Do I jump in...? Desired System Controller System inputSchematic: Me SystemDesired input Controller Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 28. An everyday empirical process... Do I jump in...? Desired System Controller System inputSchematic: Me SystemDesired input Controller System Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 29. An everyday empirical process... Do I jump in...? Desired System Controller Actual System inputSchematic: Me SystemDesired input Controller System Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 30. An everyday empirical process... Do I jump in...? Desired System Controller Actual System inputSchematic: Me SystemDesired input Actual Controller System Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 31. An everyday empirical process... Do I jump in...? Desired Actual==Desired ? System Controller Actual System inputSchematic: Me SystemDesired input Actual Controller System Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 32. An everyday empirical process... Do I jump in...? Desired Actual==Desired ? System Controller Actual System inputSchematic: Me System TempDesired input Actual Controller System Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 33. An everyday empirical process... Do I jump in...? Desired Actual==Desired ? System Controller Actual System inputSchematic: Me System TempDesired input Actual Controller System Desired Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 34. An everyday empirical process... Do I jump in...? Desired Actual==Desired ? System Controller Actual System inputSchematic: Me System TempDesired input Actual Controller System Desired Actual Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 35. An everyday empirical process... Do I jump in...? Desired Actual==Desired ? System Controller Actual System inputSchematic: Me System TempDesired input Actual Controller System Desired Actual Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 36. An everyday empirical process... Do I jump in...? Desired Actual==Desired ? System Controller Actual System inputSchematic: Me System TempDesired input Actual Controller System Desired Actual Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 37. An everyday empirical process... Do I jump in...? Desired Actual==Desired ? System Controller Actual System inputSchematic: Me System TempDesired input Actual Controller System Desired Actual Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 38. An everyday empirical process... Do I jump in...? Desired Actual==Desired ? System Controller Actual System inputSchematic: Me System TempDesired input Actual Controller System ? Desired Actual Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 39. An everyday empirical process... Do I jump in...? Desired Actual==Desired ? System Controller Actual System inputSchematic: Me System TempDesired input Actual Controller System Desired Actual Robot Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 40. What is the control error?Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 41. What is the control error? Temp TimeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 42. What is the control error? Temp Desired TimeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 43. What is the control error? Temp Desired Actual TimeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 44. What is the control error? Temp Desired Actual TimeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 45. What is the control error? Temp "Error surface" Desired Actual TimeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 46. What is the control error? Temp "Error surface" Desired Actual Time Control Error = ∫|Desired-Actual|Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 47. What is the control error? Temp "Error surface" Desired Actual Time Control Error = ∫|Desired-Actual|Control error Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 48. What is the control error? Temp "Error surface" Desired Actual Time Control Error = ∫|Desired-Actual|Control error Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 49. What is the control error? Temp "Error surface" Desired Actual Time Control Error = ∫|Desired-Actual|Control error ∞ Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 50. The "simplistic" solution SystemDesired input Actual Controller System Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 51. The "simplistic" solution System -1Desired Controller input System Actual Controller=(System) Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 52. The "simplistic" solution System -1Desired Controller input System Actual Controller=(System) Desired = Actual Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 53. The "simplistic" solution System -1Desired Controller input System Actual Controller=(System) Desired = ActualRequires: - 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
  • 54. The "simplistic" solution ε Errors System -1Desired Controller input System Actual Controller=(System) Desired = ActualRequires: - 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
  • 55. The "simplistic" solution ε Errors System -1Desired Controller input System Actual Controller=(System) ∞ Desired = Actual "Unlimited" energyRequires: - 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
  • 56. The "simplistic" solution ε Errors System -1Desired Controller input System Actual Controller=(System)Change ∞ Desired = Actual "Unlimited" energyRequires: - 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
  • 57. The "simplistic" solution Complexity System ε Errors -1Desired Controller input System Actual Controller=(System)Change ∞ Desired = Actual "Unlimited" energyRequires: - 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
  • 58. The "simplistic" solution Complexity System ε Errors -1Desired Controller input System Actual Controller=(System)Change ∞ Desired = Actual "Unlimited" energy Wont work in realityRequires: - 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
  • 59. Exercise 2 Controller Drop- zone RobotDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 60. Exercise 2 As before, but now only one step at a time! Controller Drop- zone RobotDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 61. Exercise 2 As before, but now only one step at a time! ↑ Controller Drop- zone RobotDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 62. Exercise 2 As before, but now only one step at a time! ↑ Controller Drop- zone RobotDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 63. Exercise 2 As before, but now only one step at a time! ↑ Controller ↑ Drop- zone RobotDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 64. Exercise 2 As before, but now only one step at a time! ↑ Controller ↑ Drop- P zone RobotDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 65. Exercise 2 As before, but now only one step at a time! ↑ Controller ↑ Drop- P zone RobotDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 66. Exercise 2 As before, but now only one step at a time! ↑ Controller ↑ Drop- P zone ↑ RobotDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 67. Exercise 2 As before, but now only one step at a time! ↑ Controller ↑ Drop- P zone ↑ Robot DDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 68. Discussion - groups of 4-6Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 69. Discussion - groups of 4-6What happened this time?Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 70. Adding feedback! Desired System Controller Actual System input MeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 71. Adding feedback! Desired System Controller Actual System input Schematic: Me SystemDesired input Actual Controller System Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 72. Adding feedback! Desired System Controller Actual System input Schematic: Me SystemDesired input Actual Controller System Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 73. Adding feedback! Desired System Sensor Controller Actual System input Schematic: Me SystemDesired input Actual Controller System Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 74. Adding feedback! Observed result Desired System Sensor Controller Actual System input Schematic: Me SystemDesired input Actual Controller System Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 75. Adding feedback! Observed result Desired System Sensor Controller Actual System input Schematic: Me SystemDesired input Actual Controller System Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 76. Adding feedback! Observed result Desired System Sensor Controller Actual System input Schematic: Me System -Desired Error input Actual Controller System Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 77. Adding feedback! Observed result Desired System Sensor Controller Actual System input Schematic: Me System -Desired Error input Actual Controller System Feed-back or Closed-loop system Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 78. Adding feedback! Observed result Desired System Sensor Controller Actual System input Schematic: Me System Temp -Desired Error input Actual Controller System Feed-back or Closed-loop system Observed result Sensor Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 79. Adding feedback! Observed result Desired System Sensor Controller Actual System input Schematic: Me System Temp -Desired Error input Actual Controller System Desired Feed-back or Closed-loop system Observed result Sensor Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 80. Adding feedback! Observed result Desired System Sensor Controller Actual System input Schematic: Me System Temp -Desired Error input Actual Controller System Desired Feed-back or Closed-loop system Observed result Actual Sensor Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 81. Adding feedback! Observed result Desired System Sensor Controller Actual System input Schematic: Me System Temp -Desired Error input Actual Controller System Desired Feed-back or Closed-loop system Observed result Actual Sensor Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 82. What is the control error now?Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 83. What is the control error now? Temp Desired ActualDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 84. What is the control error now? Temp Desired ActualDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 85. What is the control error now? Temp Desired Actual Control Error = ∫|Desired-Actual|Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 86. What is the control error now? Temp Desired Actual Control Error = ∫|Desired-Actual|Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 87. What is the control error now? Temp Desired Actual Control Error = ∫|Desired-Actual|Control error Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 88. What is the control error now? Temp Desired Actual Control Error = ∫|Desired-Actual|Control error Actual Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 89. What is the control error now? Temp Desired Actual Control Error = ∫|Desired-Actual|Control error Actual bounded!! Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 90. In software: There are many feedback loops at play! Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 91. In software: There are many feedback loops at play! Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 92. In software: There are many feedback loops at play! Live user feedback/release Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 93. In software: There are many feedback loops at play! Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 94. In software: There are many feedback loops at play! Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 95. In software: There are many feedback loops at play! Retrospective Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 96. In software: There are many feedback loops at play! Whiteboard discussions Retrospective Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 97. In software: There are many feedback loops at play! Daily stand-up Whiteboard discussions Retrospective Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 98. In software: There are many feedback loops at play! Daily stand-up Whiteboard discussions Retrospective Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 99. In software: There are many feedback loops at play! ATDD Daily stand-up Whiteboard discussions Retrospective Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 100. In software: There are many feedback loops at play! TDD ATDD Daily stand-up Whiteboard discussions Retrospective Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 101. In software: There are many feedback loops at play! TDD ATDD Daily stand-up Whiteboard discussions Retrospective Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 102. In software: There are many feedback loops at play! Pairing TDD ATDD Daily stand-up Whiteboard discussions Retrospective Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 103. In software: There are many feedback loops at play! Compilation Pairing TDD ATDD Daily stand-up Whiteboard discussions Retrospective Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 104. In software: There are many feedback loops at play! Squiggles Compilation Pairing TDD ATDD Daily stand-up Whiteboard discussions Retrospective Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 105. In software: There are many feedback loops at play! Squiggles Compilation Pairing TDD ATDD Daily stand-up ...AND MANY MORE! Whiteboard discussions Retrospective Live user feedback/release Usability tests Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 106. Exercise 3: Draw your own feedback loops TDD 10s Retros 1w Release 1m Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 107. Exercise 4 Controller Robot Drop- zoneDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 108. Exercise 4As before, but nownow three steps at a time! Controller Robot Drop- zone Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 109. Exercise 4As before, but nownow three steps at a ↑ time! Controller Robot Drop- zone Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 110. Exercise 4As before, but nownow three steps at a ↑ time! Controller Robot Drop- zone Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 111. Exercise 4As before, but nownow three steps at a ↑ time! Controller Robot ↑ Drop- zone Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 112. Exercise 4As before, but nownow three steps at a ↑ time! Controller Robot ↑ Drop- zone Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 113. Exercise 4As before, but nownow three steps at a ↑ time! Controller Robot ↑ Drop- P zone Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 114. Exercise 4As before, but nownow three steps at a ↑ time! Controller Robot ↑ Drop- P zone Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 115. Exercise 4As before, but nownow three steps at a ↑ time! Controller Robot ↑ Drop- P zone Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 116. Exercise 4As before, but nownow three steps at a ↑ time! Controller Robot ↑ Drop- P zone Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 117. Exercise 4As before, but nownow three steps at a ↑ time! Controller Robot ↑ Drop- P zone ↑ Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 118. Exercise 4As before, but nownow three steps at a ↑ time! Controller Robot ↑ Drop- P zone ↑ Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 119. Exercise 4As before, but nownow three steps at a ↑ time! Controller Robot ↑ Drop- P zone ↑ D Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 120. Discussion - groups of 4-6Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 121. Discussion - groups of 4-6What happened this time?Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 122. The impact of delay Desired System Sensor Controller Actual System input MeDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 123. The impact of delay Desired System Sensor Controller Actual System input Schematic: Me System -Desired Error input Actual Controller System Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 124. The impact of delay Delay Desired System Sensor Controller Actual System input Schematic: Me System -Desired Error input Actual Controller System Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 125. The impact of delay Delay Desired System Sensor Controller Actual System input Schematic: Me System -Desired Error input Actual Controller System Delay Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 126. The impact of delay Delay Desired System Sensor Controller Actual System input Schematic: Me System Temp -Desired Error input Actual Controller System Delay Observed result Sensor Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 127. The impact of delay Delay Desired System Sensor Controller Actual System input Schematic: Me System Temp -Desired Error input Actual Controller System Delay Desired Observed result Sensor Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 128. The impact of delay Delay Desired System Sensor Tap temp Controller Actual System input Schematic: Me System Temp -Desired Error input Actual Controller System Delay Desired Observed result Sensor Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 129. The impact of delay Delay Desired System Sensor Tap temp Controller Actual System input Schematic: Me System Tap temp Temp -Desired Error input Actual Controller System Delay Desired Observed result Sensor Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 130. The impact of delay Delay Desired System Sensor Tap temp Controller Actual System input Schematic: Me System Tap temp Temp -Desired Error input Actual Controller System Delay Desired Tap temp Observed result Sensor Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 131. The impact of delay Delay Desired System Sensor Tap temp Controller Actual System input Schematic: Me System Tap temp Temp -Desired Error input Actual Controller System Delay Desired Tap temp Observed result Observed Sensor result Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 132. The impact of delay Delay Desired System Sensor Tap temp Controller Actual System input Schematic: Me System Tap temp Temp -Desired Error input Actual Controller System Delay Desired Tap temp Observed result Observed Sensor result Time Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 133. Delay considerationsDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 134. Delay considerations Temp DesiredTap tempObserved result Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 135. Delay considerations Temp delay > half of required cycletime DesiredTap tempObserved Guaranteed instability! result (in practice, instability comes earlier) Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 136. Delay considerations Temp delay > half of required cycletime DesiredTap tempObserved Guaranteed instability! result (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
  • 137. More delay considerationsDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 138. More delay considerations System input - Desired Error Actual Controller System Observed result SensorDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 139. More delay considerations System input - Desired Error ActualDelay position in Controller Systemloop is irrelevant w.r.t. instability! Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 140. More delay considerations System input - Desired Error ActualDelay position in Controller System Delayloop is irrelevant w.r.t. instability! Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 141. More delay considerations System input - Desired Error ActualDelay position in Controller Systemloop is irrelevant w.r.t. instability! Observed result Sensor Delay Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 142. More delay considerations System input - Desired Error ActualDelay position in Controller Systemloop is irrelevant w.r.t. instability! Observed result Delay Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 143. More delay considerations System input - Desired Error ActualDelay position in Delay Controller Systemloop is irrelevant w.r.t. instability! Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 144. More delay considerations System input - Desired Error ActualDelay position in Controller Delay Systemloop is irrelevant w.r.t. instability! Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 145. Feedback delay considerationsDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 146. Feedback delay considerationsFeedback cycle-time sweet- spots are different due to processing and delays Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 147. Feedback delay considerationsFeedback cycle-time sweet- spots are different due to processing and delaysslower thatdesired changeUnstablesystem Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 148. Feedback delay considerationsFeedback cycle-time sweet- spots are different due to processing and delaysslower that faster than desireddesired change changeUnstable Controllersystem overloaded or too expensive Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 149. Feedback delay considerationsFeedback cycle-time sweet- spots are different due to processing and delaysslower that faster than desireddesired change change innerUnstable Controller or tensystem overloaded or too expensive want to sh re ou ter! You loops befo feed bac k Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 150. Observability and controllabilityDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 151. Observability and controllability -Desired Actual Controller System System Error input Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 152. Observability and controllability Uncontrollable -Desired Actual Controller System System Error input Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 153. Observability and controllability Uncontrollable -Desired Actual Controller System System Error input Observed result Sensor Unobservable Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 154. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 155. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 156. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 157. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 158. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Acidity Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 159. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Acidity Mineral traces Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 160. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Acidity Mineral traces Radioactivity Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 161. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Acidity SW Mineral traces Radioactivity Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 162. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Acidity SW Lines of code Mineral traces Radioactivity Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 163. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Acidity SW Lines of code Unit test results Mineral traces Radioactivity Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 164. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Acidity SW Lines of code Unit test results Mineral traces ROI Radioactivity Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 165. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Acidity SW Lines of code Unit test results Mineral traces ROI Acceptance test results Radioactivity Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 166. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Acidity SW Lines of code Unit test results Mineral traces ROI Acceptance test results Radioactivity Nr of checkins Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 167. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Acidity SW Lines of code Unit test results Mineral traces ROI Acceptance test results Radioactivity Nr of checkins Request statistics Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 168. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Acidity SW Lines of code Unit test results Mineral traces ROI Acceptance test results Radioactivity Nr of checkins Request statistics User satisfaction Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 169. Observability and controllability Uncontrollable The Sensor has to - measureDesired Actual Controller System Error System input a relevant state (observability) that the Observed result Sensor Controller can influence Unobservable (controllability). Water temperature Flow Acidity SW Lines of code Unit test results Mineral traces ROI Acceptance test results Radioactivity Nr of checkins Request statistics Usability User satisfaction Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 170. NoiseDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 171. NoiseSignal Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 172. Noise +Signal Noise Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 173. Noise + =Signal Noise Huh? Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 174. Noise + = Signal Noise Huh?Signals must be filtered from noise. Delays Lower communication bandwidth Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 175. Noise + = Signal Noise Huh?Signals must be filtered from noise. Delays Lower communication bandwidth In SW-development, noise can be - Irrelevant information - Disinformation Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 176. Discussion - groups of 4-6Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 177. Discussion - groups of 4-6What was the delay in the robot exercises?Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 178. Discussion - groups of 4-6What was the delay in the robot exercises? What could you observe?Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 179. Discussion - groups of 4-6 What was the delay in the robot exercises?What could you control? What could you observe? Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 180. Discussion - groups of 4-6 What was the delay in the robot exercises?What could you control? What could you observe? What was the noise? Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 181. Discussion - groups of 4-6 What was the delay in the robot exercises?What could you control? What could you observe? What was the noise?What was the signal? Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 182. Discussion - groups of 4-6 What was the delay in the robot exercises?What could you control? What could you observe? What was the noise?What was the signal?How did all that affect you? Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 183. Is feed-forward waste? System -Desired Error input Actual Controller System Observed result SensorDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 184. Is feed-forward waste? System -Desired Error input Actual Controller System Observed result SensorDaniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 185. Is feed-forward waste?Feed-forward using the Controller is application of a priori knowledge. We always need some of it to avoid re-inventing wheels. System - Desired Error input Actual Controller System Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 186. Is feed-forward waste?Feed-forward using the Controller is application of a priori knowledge. We always need some of it to avoid re-inventing wheels. System - Desired Error input Actual Controller System Observed result SensorTDD Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 187. Is feed-forward waste?Feed-forward using the Controller is application of a priori knowledge. We always need some of it to avoid re-inventing wheels. System - Desired Error input Actual Controller System Observed result SensorTDDATDD Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 188. Is feed-forward waste?Feed-forward using the Controller is application of a priori knowledge. We always need some of it to avoid re-inventing wheels. System - Desired Error input Actual Controller System Observed result SensorTDDATDD Daily standups Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 189. Is feed-forward waste?Feed-forward using the Controller is application of a priori knowledge. We always need some of it to avoid re-inventing wheels. System - Desired Error input Actual Controller System Observed result SensorTDDATDD Daily standups Iterations Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 190. Is feed-forward waste?Feed-forward using the Controller is application of a priori knowledge. We always need some of it to avoid re-inventing wheels. System - Desired Error input Actual Controller System Observed result SensorTDDATDD Daily standups Continuous Iterations integration Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 191. Is feed-forward waste?Feed-forward using the Controller is application of a priori knowledge. We always need some of it to avoid re-inventing wheels. System - Desired Error input Actual Controller System Observed result SensorTDDATDD Daily standups Retrospectives Continuous Iterations integration Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 192. Is feed-forward waste?Feed-forward using the Controller is application of a priori knowledge. We always need some of it to avoid re-inventing wheels. System - Desired Error input Actual Controller System Observed result SensorTDDATDD Daily standups Retrospectives Continuous Deployment Iterations integration environments Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 193. Failure modes - discussion in groups• How can you break the empirical process? What part? • Controller? • System? System • Sensor? Desired - Error Controller input System Actual • Desired? Observed result Sensor Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 194. "Softer" issues - discussion in groups• 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? Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 195. http://www.azarask.in/blog/post/the-wrong-problem/ Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 196. Some of my best advice...• Introduce feedback!• Tune and prune the Sensors.• Shorten inner feedback loops before outer.• Reduce delays.• Reduce noise. Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
  • 197. Thanks!Daniel Brolund@danielbrolunddaniel.brolund@agical.com