Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based...

65
Feedback Loops in Practice Marcus Denker Talk held at ESUG2017

Transcript of Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based...

Page 1: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Feedback Loops in Practice

Marcus Denker

Talk held at ESUG2017

Page 2: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Two talks

Page 3: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

ESUG14

https://www.slideshare.net/MarcusDenker/2014-esugcathedral

Page 4: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

ESUG16

https://www.slideshare.net/MarcusDenker/perfection-feedback-loops-or-why-worse-is-better-65540840

Page 5: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

(do not expect too much)

Page 6: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

ESUG14

Page 7: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services
Page 8: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services
Page 9: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Scaffolding

Page 10: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

ESUG16

Page 11: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Perfection

Page 12: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Feedback

Page 13: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Smalltalk can be feedback loop

Page 14: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Smalltalk should be feedback loop

Page 15: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

TODAY

Page 16: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

What does that mean in reality?

Page 17: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Examples for Pharo

Page 18: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

What we do / what are the challenges

Page 19: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Goal: Getting feedback and ideas!

Page 20: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Trivial Changes

2014

Page 21: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Every improvement has an effect

2014

Page 22: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

2014

Page 23: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

A small change fed back will have huge payout

2016

Page 24: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

A tiny linear change now would be a huge change some iterations ago

2016

Page 25: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Trivial Change

• Issue tracker

• Make it easy to contribute

• Do not ignore contributions

Page 26: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Issue Tracker

• Fun: It was once thought as not needed

• Record issues people have

• Record contributions, too!

• Open: 651 Closed: 17459 (!!)

Page 27: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Challenges

• Work needed to keep clean

• Duplicates, already fixed, non-actionable…

• Reviewing / Getting in good state

• Actually fixing reported bugs

Page 28: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Solutions

• Automatic close after 1 year inactivity

• Has to be automatic else people get upset

• Some people look every to keep things in check

• Regular Sprints: every last Friday the month

• More fun to do together then alone!

Page 29: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Make it easy

• It should be very easy to contribute

• We are not there yet!

Page 30: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Large(r) Change

Page 31: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

2014

Page 32: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Scaffolding

2014

Page 33: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Todays system is scaffolding for tomorrow

2014

Page 34: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services
Page 35: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Elephant in the Room

Page 36: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Backward Compatibility

Page 37: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Example: Bloc/Bric

Page 38: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

You can not stay 100% compatible to Morphic and do something better

Page 39: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Morphic is scaffolding to develop the next step

Page 40: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

The Platform

Jump to large

Proj

ect1

Proj

ect2

Proj

ect3

2014

Page 41: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Nomadic Solution

- Do not build infrastructure

- Use resources until depleted

- Move on

2014

Page 42: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

The Platform

Jump Possible

Proj

ect1 Pr

ojec

t2

Proj

ect3

Proj

ect4

2014

Page 43: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

https://www.youtube.com/watch?v=y97rBdSYbkg

Page 44: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Backward Compatibility

• Especially problematic for portable projects

• Why improve the Platform if projects can only use a 100% backward compatible subset?

• Is that a good situation?

Page 45: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Backward Compatibility

• We need better tools and structures to support evolution of client code

• Some experiments: rewriting deprecations (fun!)

Page 46: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Accept Imperfection

2016

Page 47: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

2016

Page 48: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

True for both small and big small

Page 49: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Good enough to integrate

• Deciding to integrate is very very hard

• You do not want to reject everything

• But accepting blindly is wrong, too

• Lots of work!

Page 50: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Involve the community• Make it easy to review and test

• Delegate reviewing to subsystem maintainers

• Accept that nothing is perfect and mistakes can happen.

Page 51: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Accept Chaos

• You can not control everything. There is not enough time in the day.

• Things can get to be a bit chaotic at times

• Yet better than limiting activity to what is controllable

Page 52: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Feedback + Chaos• Many examples where systems got into loop

based exponential growth are examples lack of control:

• The web vs. online services

• Many examples at companies

• e.g Unics vs Multics, even X86 (often examples of perfect vs. DONE).

Page 53: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Release =! Perfect

• Until Pharo 6: Lots of critic from outsiders about releasing something not perfect.

• But: Releases are done every year, not when everything is perfect.

Page 54: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Learned helplessness

• Smalltalk is open, can be changed

• Clients are programmers

• People do change tools/environment

• But “Smalltalk, the system” did not learn

Page 55: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Structure for Feedback

Page 56: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Structure for Feedback

• Example: GT Inspector

• Extending the inspector is easy

• There are lots of examples

• It can be done in a modular way

Page 57: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Structure for Feedback

• Future Example: Sista

• Implement Optimizer of the VM in the Image

• Makes it easier (hopefully) for Smalltalkers to contribute

Page 58: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

… round 1,000 times the global production of rice in 2010 (464,000,000 metric tons)

2016

Page 59: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

If it really works…

Page 60: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

… we have a problem

Page 61: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Growth: everything gets “more”

Page 62: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Challenge: Growth

• More Boring tasks

• More complex tasks

• Require full time, long term attention

Page 63: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Solution for Scaling• Technical

• e.g. Git for reviews and submissions, more people can get involved.

• Community Structure

• Example: Consortium

• Even better solutions can be invented!

Page 64: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Input needed!

• Now

• At the Conference

• Later by Mail or in Discord

Page 65: Feedback Loops - Marcus DenkerFeedback + Chaos • Many examples where systems got into loop based exponential growth are examples lack of control: • The web vs. online services

Twitter: @marcusdenker http://marcusdenker.de