Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
@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
@rhwy
ncrafts.io
@rhwy || #rcfbloops
WHY I’M HERE TO TALK ABOUT
FEEDBACK LOOPS ?
@rhwy || #rcfbloops
TIME TO FOCUS
WHAT’S REALLY IMPORTANT?
@rhwy || #rcfbloops
HAVE YOU HEARD ?
• TDD IS DEAD
(David Heinemeier Hansson, @dhh)
• AGILE IS A CANCER
(Erik Meijer, @hea...
@rhwy || #rcfbloops
HAVE YOU HEARD ?
• TDD IS DEAD
(David Heinemeier Hansson, @dhh)
• AGILE IS A CANCER
(Erik Meijer, @hea...
@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 befo...
@rhwy || #rcfbloops
Don’t you want to scream sometimes?
@rhwy || #rcfbloops
HOW ARE we ARRIVED AT
THIS Mess ?
@rhwy || #rcfbloops
Because people that don’t 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 f...
@rhwy || #rcfbloops
LET’S DEVELOP WITH AGILITY!
Agile is not an input of your
system that you can buy, but
a characteristi...
@rhwy || #rcfbloops
2/ LET’S SEE FROM WHERE ALL THIS CAME
@rhwy || #rcfbloops
Welcome change
Deliver frequently
Agile processes promote sustainable
development
AGILE MANIFESTO PRIN...
@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 does’t
harm our a...
@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, LET’S 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
LET’S UNDERSTAND THESE feedback loops
@rhwy || #rcfbloops
ITERATION FACILITATORS
Iteration Size =
1
Task Difficulty
granularity & baby steps are the key
of good ...
@rhwy || #rcfbloops
BECAUSE IT’S ABOUT FEEDBACK,
AND BECAUSE WE’RE DOING SMALL ITERATIONS WE CALL
THAT FEEDBACK LOOPS …
@rhwy || #rcfbloops
FEEDBACK LOOPS ARE real THINGS
NOT ONLY SOFTWARE DEVELOPMENT PROJECTIONS
But,
@rhwy || #rcfbloops
FEEDBACK LOOPS
FEEDBACK LOOPS OCCURS WHEN THE OUTPUT OF A
SYSTEM A FEEDS THE INPUT OF A SYSTEM B THAT ...
@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
IT’S NOT ABOUT
&
@rhwy || #rcfbloops
AMPLIFICATION REGULATION
IT’S ABOUT
&
@rhwy || #rcfbloops
POSITIVE
Feedback Loops
POSITIVE IS A LOOP GAIN THAT
MEANS :
PRODUCTION OF A WILL HELP
MORE PRODUCTION...
@rhwy || #rcfbloops
NEGATIVE
Feedback Loops
N E G AT I V E F E E D B A C K LO O P
OCCURS WHEN YOU NEED TO
R E D U C E F L ...
@rhwy || #rcfbloops
APPLYING TO YOUR WORK:
That means, that doing small iterations , is not
the only key, you also need to...
@rhwy || #rcfbloops
suppose that:
- you know the domain very well,
- and receive quite good stories from your business,
- ...
@rhwy || #rcfbloops
FOR EXAMPLE,
ON A REGULAR CORPORATE PROJECT
Concretely, doing things like:
- tests (not tdd),
- measur...
@rhwy || #rcfbloops
PLEASE, NOTE
THAT YOU CAN HAVE NEGATIVE FEEDBACK LOOPS AT
PROJECT LEVEL TO ENSURE STABILITY BUT ALSO P...
@rhwy || #rcfbloops
most of the times, the context means:
- you don’t know the domain at all,
- and don’t have good storie...
@rhwy || #rcfbloops
Don’t apply it as « mandatory » but:
- most of the time, for complex things it will help you emerge
a ...
@rhwy || #rcfbloops
ANOTHER EXAMPLE
BEER PONG
For Ground, Pots
TDD will help!
For Angle, Force:
test it live !
Constraints...
@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 DON’T APPLY EVERYWHERE!
THAT’S WHY YOU NEED TO :
(aka : no silver bullet process)
- UNDERST...
@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,
Learning
Agile
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.io
21-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
Prochain SlideShare
Chargement dans…5
×

Feedback Loops...to infinity, and beyond!

1 957 vues

Publié le

Agile. Agile is not a noun we can quantify but an adjective. Why on earth are most people trying to buy some ’agile’ then ? Why are people trying to sell that they are ’doing’ agile?
Maybe it's time to remember the core values of software development, and among them, feedback is a central one. Let’s try to refine our ability to understand feedback and see how it can help to produce better software

Publié dans : Logiciels

Feedback Loops...to infinity, and beyond!

  1. 1. @rhwy || #rcfbloops FEEDBACK LOOPSTo infinity, and beyond !… iterative thoughts by Rui Carvalho @rhwy#rcfbloops talk@rui.fr
  2. 2. @rhwy || #rcfbloops WHO AM I? AN INDEPENDENT Software Craftsman WITH STRONG COMMUNITY FOCUS @rhwy ncrafts.io
  3. 3. @rhwy || #rcfbloops WHY I’M HERE TO TALK ABOUT FEEDBACK LOOPS ?
  4. 4. @rhwy || #rcfbloops TIME TO FOCUS WHAT’S REALLY IMPORTANT?
  5. 5. @rhwy || #rcfbloops HAVE YOU HEARD ? • TDD IS DEAD (David Heinemeier Hansson, @dhh) • AGILE IS A CANCER (Erik Meijer, @headinthebox)
  6. 6. @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 … »
  7. 7. @rhwy || #rcfbloops FIGHT TIME?
  8. 8. @rhwy || #rcfbloops KEEP THAT FOR LATER
  9. 9. @rhwy || #rcfbloops WHY THESE SMART PEOPLE ARE THEY COMPLAINING?
  10. 10. @rhwy || #rcfbloops What About You? … AND,
  11. 11. @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?
  12. 12. @rhwy || #rcfbloops Don’t you want to scream sometimes?
  13. 13. @rhwy || #rcfbloops HOW ARE we ARRIVED AT THIS Mess ?
  14. 14. @rhwy || #rcfbloops Because people that don’t understand core values focus on processes HOW ARE we ARRIVED AT THIS Mess ?
  15. 15. @rhwy || #rcfbloops 1ST / SEMANTICS MATTER
  16. 16. @rhwy || #rcfbloops AGILE IS AN ADJECTIVE, NOT A NOUN adj. : I am Happy! noun. : Can I buy some Happy? Nonsense, right?
  17. 17. @rhwy || #rcfbloops So, why are you doing agile then? * * maybe not you directly, mostly your boss or a recruiter asking for that ?…
  18. 18. @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
  19. 19. @rhwy || #rcfbloops 2/ LET’S SEE FROM WHERE ALL THIS CAME
  20. 20. @rhwy || #rcfbloops Welcome change Deliver frequently Agile processes promote sustainable development AGILE MANIFESTO PRINCIPLES
  21. 21. @rhwy || #rcfbloops SCRUM || USUAL AGILE APPLICATION Is only a small part of what should be done !
  22. 22. @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
  23. 23. @rhwy || #rcfbloops BEHIND THESE principles, THERE IS THE values!
  24. 24. @rhwy || #rcfbloops AMONG OTHER VALUES … Feedback Communication Simplicity Courage Respect
  25. 25. @rhwy || #rcfbloops FEEDBACK !
  26. 26. @rhwy || #rcfbloops XP
  27. 27. @rhwy || #rcfbloops AGAIN, LET’S HAVE A LOOK AT SCRUM
  28. 28. @rhwy || #rcfbloops WE FORGOT HALF OF THE FEEDBACK!
  29. 29. @rhwy || #rcfbloops WE NEED ALL LOOPS TO PROVIDE QUALITY! Project Management Code & Quality
  30. 30. @rhwy || #rcfbloops LET’S UNDERSTAND THESE feedback loops
  31. 31. @rhwy || #rcfbloops ITERATION FACILITATORS Iteration Size = 1 Task Difficulty granularity & baby steps are the key of good incremental software
  32. 32. @rhwy || #rcfbloops BECAUSE IT’S ABOUT FEEDBACK, AND BECAUSE WE’RE DOING SMALL ITERATIONS WE CALL THAT FEEDBACK LOOPS …
  33. 33. @rhwy || #rcfbloops FEEDBACK LOOPS ARE real THINGS NOT ONLY SOFTWARE DEVELOPMENT PROJECTIONS But,
  34. 34. @rhwy || #rcfbloops FEEDBACK LOOPS FEEDBACK 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
  35. 35. @rhwy || #rcfbloops AND MORE IMPORTANT, THERE IS 2 KINDS OF FEEDBACK LOOPS: THE POSITIVE ONE AND THE NEGATIVE ONE A B
  36. 36. @rhwy || #rcfbloops ATTENTION, Common non-sens tend to define: Positive feedback = Good Negative feedback = Bad &
  37. 37. @rhwy || #rcfbloops GOOD BAD IT’S NOT ABOUT &
  38. 38. @rhwy || #rcfbloops AMPLIFICATION REGULATION IT’S ABOUT &
  39. 39. @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
  40. 40. @rhwy || #rcfbloops NEGATIVE Feedback Loops N E G AT I V E F E E D B A C K LO 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
  41. 41. @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!
  42. 42. @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
  43. 43. @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
  44. 44. @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
  45. 45. @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!
  46. 46. @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)
  47. 47. @rhwy || #rcfbloops ANOTHER EXAMPLE BEER PONG For Ground, Pots TDD will help! For Angle, Force: test it live ! Constraints Boundaries
  48. 48. @rhwy || #rcfbloops WHAT DOES THAT MEAN REALLY? (TO CONCLUDE)
  49. 49. @rhwy || #rcfbloops KEEP THE FOCUS ON THE Why YOU ARE DOING SOMETHING BEFORE THE How
  50. 50. @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
  51. 51. @rhwy || #rcfbloops BEING A GOOD Software craftsman ALSO MEANS BEING MORE PRAGMATIC AND LESS DOGMATIC
  52. 52. @rhwy || #rcfbloops AGILE IS ABOUT Feedback
  53. 53. @rhwy || #rcfbloops AND FEEDBACK IS ABOUT Learning
  54. 54. @rhwy || #rcfbloops THAT MEANS, Learning Agile IS ABOUT Learning
  55. 55. @rhwy || #rcfbloops CAREFULLY SETUP AND LISTENING TO YOUR feedback loops IS THE ONLY WAY OF Learning &
  56. 56. @rhwy || #rcfbloops AND CONTINUOUS LEARNING BY small iterations IS THE ONLY WAY TO BUILD THE RIGHT PRODUCT =>
  57. 57. Practice, Practice, Practice never forget, as a Craftsman, to
  58. 58. @rhwy || #rcfbloops Thank you! ncrafts.io 21-22 May 2015 Paris, France Questions ?
  59. 59. @rhwy || #rcfbloops the great illustrative icons came from the awesome nounproject.com Feedback Loops v1.4 2015-04-22

×