feedback loops...to infinity, and beyond!

Download Feedback Loops...to infinity, and beyond!

Post on 16-Jul-2015

608 views

Category:

Software

1 download

Embed Size (px)

TRANSCRIPT

  • @rhwy || #rcfbloops

    FEEDBACK LOOPSTo infinity, and beyond !

    iterative thoughts by Rui Carvalho

    @rhwy#rcfbloops talk@rui.fr

  • @rhwy || #rcfbloops

    WHO AM I?AN INDEPENDENT

    Software Craftsman WITH STRONG

    COMMUNITY FOCUS

    @rhwyncrafts.io

  • @rhwy || #rcfbloops

    WHY IM HERE TO TALK ABOUT FEEDBACK LOOPS ?

  • @rhwy || #rcfbloops

    TIME TO FOCUS

    WHATS REALLY IMPORTANT?

  • @rhwy || #rcfbloops

    HAVE YOU HEARD ?

    TDD IS DEAD (David Heinemeier Hansson, @dhh)

    AGILE IS A CANCER (Erik Meijer, @headinthebox)

  • @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

  • @rhwy || #rcfbloops

    FIGHT TIME?

  • @rhwy || #rcfbloops

    KEEP THAT FOR LATER

  • @rhwy || #rcfbloops

    WHY THESE SMART PEOPLE ARE THEY COMPLAINING?

  • @rhwy || #rcfbloops

    What About You?

    AND,

  • @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?

  • @rhwy || #rcfbloops

    WANTTOCRY?

    Dont you want to scream sometimes?

  • @rhwy || #rcfbloops

    HOW ARE we ARRIVED AT THIS Mess ?

  • @rhwy || #rcfbloops

    Because people that dont understand core values focus on processes

    HOW ARE we ARRIVED AT THIS Mess ?

  • @rhwy || #rcfbloops

    1ST / SEMANTICS MATTER

  • @rhwy || #rcfbloops

    AGILE IS AN ADJECTIVE, NOT A NOUN

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

    Nonsense, right?

  • @rhwy || #rcfbloops

    So, why are you doing agile then? *

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

  • @rhwy || #rcfbloops

    LETS 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

  • @rhwy || #rcfbloops

    2/ LETS SEE FROM WHERE ALL THIS CAME

  • @rhwy || #rcfbloops

    Welcome change

    Deliver frequently

    Agile processes promote sustainable development

    AGILE MANIFESTO PRINCIPLES

  • @rhwy || #rcfbloops

    SCRUM | | USUAL AGILE APPLICATION

    Is only a small part of what should be done !

  • @rhwy || #rcfbloops

    AGILITY IS NOT A SILVER BULLET PROCESS

    Agile is the ability to make changes now that doest harm our ability to make changes in the future

  • @rhwy || #rcfbloops

    BEHIND THESE principles, THERE IS THE values!

  • @rhwy || #rcfbloops

    AMONG OTHER VALUES

    Feedback

    Communication

    Simplicity

    Courage

    Respect

  • @rhwy || #rcfbloops

    FEEDBACK !

  • @rhwy || #rcfbloops

    XP

  • @rhwy || #rcfbloops

    AGAIN, LETS HAVE A LOOK AT SCRUM

  • @rhwy || #rcfbloops

    WE FORGOT HALF OF THE FEEDBACK!

  • @rhwy || #rcfbloops

    WE NEED ALL LOOPS TO PROVIDE QUALITY!

    Project Management

    Code & Quality

  • @rhwy || #rcfbloops

    LETS UNDERSTAND THESE feedback loops

  • @rhwy || #rcfbloops

    ITERATION FACILITATORS

    Iteration Size = 1

    Task Difficulty

    granularity & baby steps are the key of good incremental software

  • @rhwy || #rcfbloops

    BECAUSE ITS ABOUT FEEDBACK,AND BECAUSE WERE DOING SMALL ITERATIONS WE CALL THAT FEEDBACK LOOPS

  • @rhwy || #rcfbloops

    FEEDBACK LOOPS ARE real THINGSNOT ONLY SOFTWARE DEVELOPMENT PROJECTIONS

    But,

  • @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

  • @rhwy || #rcfbloops

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

    THE POSITIVE ONE AND THE NEGATIVE ONE

    A B

  • @rhwy || #rcfbloops

    ATTENTION, Common non-sens tend to define:

    Positive feedback = Good

    Negative feedback = Bad &

  • @rhwy || #rcfbloops

    GOOD BAD

    ITS NOT ABOUT

    &

  • @rhwy || #rcfbloops

    AMPLIFICATION REGULATION

    ITS ABOUT

    &

  • @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

  • @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

  • @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 !

  • @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

  • @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

  • @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

  • @rhwy || #rcfbloops

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

    Then : For sure, youll 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 youre trying to create in that context!

  • @rhwy || #rcfbloops

    Dont 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 dont 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)

  • @rhwy || #rcfbloops

    ANOTHER EXAMPLEBEER PONG

    For Ground, PotsTDD will help!

    For Angle, Force: test it live !

    Constraints Boundaries

  • @rhwy || #rcfbloops

    WHAT DOES THAT MEAN REALLY?

    (TO CONCLUDE)

  • @rhwy || #rcfbloops

    KEEP THE FOCUS ON THE Why YOU ARE DOING SOMETHING

    BEFORE THE How

  • @rhwy || #rcfbloops

    SAME RULES DONT APPLY EVERYWHERE!

    THATS WHY YOU NEED TO :

    (aka : no silver bullet process)

    - UNDERSTAND THE values

    - APPLY THE principles

    - PRACTICE , PRACTICE , practice

  • @rhwy || #rcfbloops

    BEING A GOOD Software craftsman

    ALSO MEANS BEING MORE PRAGMATIC

    AND LESS DOGMATIC

  • @rhwy || #rcfbloops

    AGILE IS ABOUT

    Feedback

  • @rhwy || #rcfbloops

    AND FEEDBACK IS ABOUT

    Learning

  • @rhwy || #rcfbloops

    THAT MEANS,

    LearningAgile

    IS ABOUT

    Learning

  • @rhwy || #rcfbloops

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

    Learning

    &

  • @rhwy || #rcfbloops

    AND CONTINUOUS LEARNING BY small iterations IS THE ONLY WAY TO

    BUILD THE RIGHT PRODUCT

    =>

  • Practice, Practice, Practice

    never forget, as a Craftsman, to

  • @rhwy || #rcfbloops

    Thank you!

    ncrafts.io21-22 May 2015

    Paris, France

    Questions ?

  • @rhwy || #rcfbloops

    the great illustrative icons came from the awesome nounproject.com

    Feedback Loops v1.4

    2015-04-22