Top Banner
59

Feedback Loops...to infinity, and beyond!

Jul 16, 2015

Download

Software

Rui Carvalho
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

FEEDBACK LOOPSTo infinity, and beyond !…

iterative thoughts by Rui Carvalho

@rhwy#rcfbloops [email protected]

Page 2: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

WHO AM I?

AN INDEPENDENT Software Craftsman

WITH STRONG COMMUNITY FOCUS

@rhwyncrafts.io

Page 3: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

WHY I’M HERE TO TALK ABOUT FEEDBACK LOOPS ?

Page 4: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

TIME TO FOCUS

WHAT’S REALLY IMPORTANT?

Page 5: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

HAVE YOU HEARD ?

• TDD IS DEAD (David Heinemeier Hansson, @dhh)

• AGILE IS A CANCER

(Erik Meijer, @headinthebox)

Page 6: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

HAVE YOU HEARD ?

• TDD IS DEAD (David Heinemeier Hansson, @dhh)

• AGILE IS A CANCER

(Erik Meijer, @headinthebox)

« TDD is killing your creativity »

« .. if your company is doing TDD, leave, TDD is a waste of time … »

Page 7: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

FIGHT TIME?

Page 8: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

KEEP THAT FOR LATER

Page 9: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

WHY THESE SMART PEOPLE ARE THEY COMPLAINING?

Page 10: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

What About You?

… AND,

Page 11: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

ARE YOU DOING AGILE?

• are you following a strict scrum process?

• do you produce more value than before?

• is the quality of your product better?

• do you provide that value more quickly to the final end user?

• Are you more confident?

Page 12: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

WANT TO CRY?

Don’t you want to scream sometimes?

Page 13: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

HOW ARE we ARRIVED AT THIS Mess ?

Page 14: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

Because people that don’t understand core values focus on processes

HOW ARE we ARRIVED AT THIS Mess ?

Page 15: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

1ST / SEMANTICS MATTER

Page 16: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

AGILE IS AN ADJECTIVE, NOT A NOUN

adj. : I am Happy!noun. : Can I buy some Happy?

Nonsense, right?

Page 17: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

So, why are you doing agile then? *

* maybe not you directly, mostly your boss or a recruiter asking for that ?…

Page 18: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

LET’S DEVELOP WITH AGILITY!

Agile is not an input of your system that you can buy, but a characteristic of your team and your way of working

Page 19: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

2/ LET’S SEE FROM WHERE ALL THIS CAME

Page 20: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

Welcome change

Deliver frequently

Agile processes promote sustainable development

AGILE MANIFESTO PRINCIPLES

Page 21: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

SCRUM | | USUAL AGILE APPLICATION

Is only a small part of what should be done !

Page 22: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

AGILITY IS NOT A SILVER BULLET PROCESS

Agile is the ability to make changes now that does’t harm our ability to make changes in the future

Page 23: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

BEHIND THESE principles, THERE IS THE values!

Page 24: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

AMONG OTHER VALUES …

Feedback

Communication

Simplicity

Courage

Respect

Page 25: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

FEEDBACK !

Page 26: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

XP

Page 27: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

AGAIN, LET’S HAVE A LOOK AT SCRUM

Page 28: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

WE FORGOT HALF OF THE FEEDBACK!

Page 29: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

WE NEED ALL LOOPS TO PROVIDE QUALITY!

Project

Management

Code & Quality

Page 30: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

LET’S UNDERSTAND THESE feedback loops

Page 31: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

ITERATION FACILITATORS

Iteration Size = 1

Task Difficulty

granularity & baby steps are the key of good incremental software

Page 32: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

BECAUSE IT’S ABOUT FEEDBACK,AND BECAUSE WE’RE DOING SMALL ITERATIONS WE CALL THAT FEEDBACK LOOPS …

Page 33: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

FEEDBACK LOOPS ARE real THINGSNOT ONLY SOFTWARE DEVELOPMENT PROJECTIONS

But,

Page 34: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

FEEDBACK LOOPSFEEDBACK LOOPS OCCURS WHEN THE OUTPUT OF A SYSTEM A FEEDS THE INPUT OF A SYSTEM B THAT IN

RETURN FEEDS THE INPUT OF THE ORIGINAL SYSTEM A

A B

Page 35: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

AND MORE IMPORTANT,THERE IS 2 KINDS OF FEEDBACK LOOPS:

THE POSITIVE ONE AND THE NEGATIVE ONE

A B

Page 36: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

ATTENTION, Common non-sens tend to define:

Positive feedback = Good

Negative feedback = Bad &

Page 37: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

GOOD BAD

IT’S NOT ABOUT

&

Page 38: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

AMPLIFICATION REGULATION

IT’S ABOUT

&

Page 39: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

POSITIVE Feedback Loops

POSITIVE IS A LOOP GAIN THAT MEANS :

PRODUCTION OF A WILL HELP MORE PRODUCTION OF B , THAT IN RETURN WILL HELP MORE AND MORE PRODUCTION OF A

AMPLIFICATION

Page 40: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

NEGATIVE Feedback Loops

N E G AT I V E F E E D B A C K L O O P OCCURS WHEN YOU NEED TO R E D U C E F L U C T U AT I O N S O R DISTURBANCES IN YOUR SYSTEM

REGULATION

Page 41: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

APPLYING TO YOUR WORK:

That means , that doing small iterations , is not the only key, you also need to understand what

objectives you are your trying to reach !

Page 42: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

suppose that: - you know the domain very well, - and receive quite good stories from your business, - your (big) team is skilled

Then : maybe, you'll try to setup a negative feedback loop, in order to keep your environment stable , producing value on a regular basis

FOR EXAMPLE, ON A REGULAR CORPORATE PROJECT

Page 43: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

FOR EXAMPLE, ON A REGULAR CORPORATE PROJECT

Concretely, doing things like: - tests (not tdd), - measuring code coverage, - having cyclomatic metrics

Is : a way to (try to) ensure that code quality is stable on the long term basis

Page 44: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

PLEASE, NOTE

THAT YOU CAN HAVE NEGATIVE FEEDBACK LOOPS AT PROJECT LEVEL TO ENSURE STABILITY BUT ALSO POSITIVE FEEDBACK LOOPS AT CODE LEVEL TO ENSURE CREATIVITY

Page 45: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

most of the times, the context means: - you don’t know the domain at all, - and don’t have good stories because there is no business, - your don’t know if you’re doing the right thing !…

Then : For sure, you’ll need to setup a positive feedback loop in order to enhance creativity, generate and test ideas

FOR EXAMPLE, ON STARTUP (OR NEW PROJECT)

testing ideas is the objective and value you’re trying to create in that context!

Page 46: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

Don’t apply it as «  mandatory  » but: - most of the time, for complex things it will help you emerge a good solution - sometimes for basic things you don’t effectively need it - for GUI things, that ’s not easy too…

Alternatively : - Creating GUI things is great when you can watch live the

changes of your code, it ’s the best design value

- a good REPL is a great way to quickly test and design too!

FOR EXAMPLE, ABOUT TDD (THE DESIGN PROCESS NOT THE TESTS)

Page 47: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

ANOTHER EXAMPLEBEER PONG

For Ground, PotsTDD will help!

For Angle, Force: test it live !

Constraints Boundaries

Page 48: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

WHAT DOES THAT MEAN REALLY?

(TO CONCLUDE)

Page 49: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

KEEP THE FOCUS ON THE Why YOU ARE DOING SOMETHING

BEFORE THE How

Page 50: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

SAME RULES DON’T APPLY EVERYWHERE!

THAT’S WHY YOU NEED TO :

(aka : no silver bullet process)

- UNDERSTAND THE values

- APPLY THE principles

- PRACTICE , PRACTICE , practice

Page 51: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

BEING A GOOD Software craftsman

ALSO MEANS BEING MORE PRAGMATIC

AND LESS DOGMATIC

Page 52: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

AGILE IS ABOUT

Feedback

Page 53: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

AND FEEDBACK IS ABOUT

Learning

Page 54: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

THAT MEANS,

LearningAgile

IS ABOUT

Learning

Page 55: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

CAREFULLY SETUP AND LISTENING TO YOUR feedback loops IS THE ONLY WAY OF

Learning

&

Page 56: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

AND CONTINUOUS LEARNING BY small iterations IS THE ONLY WAY TO

BUILD THE RIGHT PRODUCT

=>

Page 57: Feedback Loops...to infinity, and beyond!

Practice, Practice, Practice

never forget, as a Craftsman, to

Page 58: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

Thank you!

ncrafts.io21-22 May 2015

Paris, France

Questions ?

Page 59: Feedback Loops...to infinity, and beyond!

@rhwy || #rcfbloops

the great illustrative icons came from the awesome nounproject.com

Feedback Loops v1.4

2015-04-22