@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
AGILE FEEDBACK LOOPS
Iterative thoughts on agile values
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Hello, I’m Rui!
I help people creating value with software
I help the scene organizing stuff
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
During this talk
Why How
It is connected
to agile
It matters
What
Is this really
about
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Why
It matters
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Why ?
I’m here to talk -now- about
Feedback loops and agile ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Interesting stuff has been put on
the table…
« TDD is dead » @dhh
« Agile is dead » @pragdave
« Agile is a cancer » @headinabox
This is one is sarcastic
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
People complain
- criticize of agile
- criticize of the practices
- it doesn’t solve/change anything
- they are just defending other ideas
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
How
Did we get there ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
There could be tons of good
reasons after all…
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
There could be tons of good reasons after all…
1. Copying the
processes with
Cargo cult effect ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
There could be tons of good reasons after all…
1. Copying the
processes with
Cargo cult effect ?
2. Underestimated
complexity ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
There could be tons of good reasons after all…
1. Copying the
processes with
Cargo cult effect ?
2. Underestimated
complexity ?
3. Our history +
systemic traction to
old stable state ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
There could be tons of good reasons after all…
1. Copying the
processes with
Cargo cult effect ?
2. Underestimated
complexity ?
3. Our history +
systemic traction to
old stable state ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
WHat is the reality of Agile
for most people after all ?
- following the process ?
- is there more value than before ?
- is there a better lead time ?
- better quality ?
…
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Run it by the book…
«  People who doesn’t understand
core values focus on the process »
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Semantics matter
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Agile is an adjective
Not a noun !
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Agile is an adjective not a noun
Adj: I’m happy!
Noun: can I buy some happy?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Agile is an adjective not a noun
Adj: I’m happy!
Noun: can I buy some happy?
Nonsense
Right ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
So, why are you doing Agile then ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
So, why are you doing Agile then ?
Let’s try to
Develop with agility
Instead ok ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
There could be tons of good reasons after all…
1. Copying the
processes with
Cargo cult effect ?
2. Underestimated
complexity ?
3. Our history +
systemic traction to
old stable state ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Complexity is everywhere
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Complexity is everywhere
Accidental
Essential
Domain,
technical…
Us …
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Complexity is everywhere
Cynefin
A conceptual framework
for decision making
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Complexity is
everywhere
Cynefin
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Complexity is
everywhere
Cynefin
Your enterprise is
probably here, good
place for agile
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Complexity is
everywhere
Cynefin
Your enterprise is
probably here, good
place for agile
Most of the time Problems happen because you
try to use known recipes from complicated space
in a complex space whereas it doesn’t make sense
a-priori
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Complexity is
everywhere
Cynefin
When it doesn’t make sense a priori
You need feedback loops
To constantly watch where you’re going
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
There could be tons of good reasons after all…
1. Copying the
processes with
Cargo cult effect ?
2. Underestimated
complexity ?
3. Our history +
systemic traction to
old stable state ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Systemic
Enterprises are
living systems
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Systemic
Enterprises are living systems
Despite best effort of its constituting
elements a system will try to naturally
rollback to it’s natural state
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Systemic
Enterprises are living systems
Despite best effort of its constituting
elements a system will try to naturally
rollback to it’s natural state
We’ll see later that’s also a
negative feedback loop
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Occidental culture has a tendency to put
everything in a box, categorize & prioritize
-> that doesn’t help to understand the
true nature of complex systems
-> that doesn’t help the flow
History
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Enterprises still work with
same as manufactures 100
years ago …
History
Accidental
complexity
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Systems
Think more in systems
To see global outcome
Instead of local optimization
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
How
Is it connected
to agile?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Roll back to agile roots
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Well, it’s in its DNA after all…
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Agile Manifesto (2001)
Individuals and interactions
over processes and tools
Working software
over comprehensive documentation
Customer collaboration
over contract negotiation
Responding to change
over following a plan
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Agile Manifesto (2001)
Individuals and interactions
over processes and tools
Working software
over comprehensive documentation
Customer collaboration
over contract negotiation
Responding to change
over following a plan
These are all
feedback loops at
different levels of
interaction
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
XP VALUES
Communication
Simplicity
Courage
Respect
Feedback
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
SCRUM cycles
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
eXtreme Programming is an ideal many software shops would love to reach, but with the
constant pressures to produce software quickly, they cannot actually implement it. The Agile
software process allows a company to implement eXtreme Programming quickly and immediately-
and to begin producing software incrementally in as little as 30 days! Implementing
eXtreme Programming is easier said than done. The process
can be time consuming and actually slow down current software projects that are in process.
This book shows readers how to use SCRUM, an Agile
software development process, to
quickly and seamlessly implement XP
in their shop-while still producing actual software. Using SCRUM and the Agile process can
virtually eliminate all downtime during an XP implementation.
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
XP cycles
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
SCRUM -> XP
Cycle mapping
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
SCRUM -> XP
Missing Cycles
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Respecting core values,
We need all feedback loops to achieve quality!
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Respecting core values,
We need all feedback loops to
achieve quality!
Project
Management
Code & Quality
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Question …
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
If you could only keep one of these
ceremonies, which one ?
Daily Planning
Refinement Demo
Retrospective
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
What
Are we talking
about after all?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
ALL FEEDBACK LOOPS MATTERS!
The smaller the feedback loop is, the best direction you have
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Iteration Facilitators
Feedback loops types are
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Iteration Facilitators
iteration size =
Task effort
1
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
That works for collaboration too
Number of people working
in collaboration =
Complexity
1
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
because it’s about feedback
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
because it’s about feedback, and because we’re
doing iterations,
People call it Feedback loops
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Feedback loops are real things
Not only software development practices
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Feedback Loops
A B
Feedback Loops occur 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
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
More important,
There is 2 kinds of
feedback loops
The positive one
The negative one
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Attention, common sense tend to define:
Positive feedback loop = good
Negative feedback loop = Bad
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
BAD
IT’S NOT ABOUT
&
GOOD
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
IT’S ABOUT
REGULATION
&
AMPLIFICATION
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Positive Feedback loops
The production of A will help more
production of B, that, in return, will
help more production of A
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Negative Feedback loops
Negative feedback loops occurs when
you need to reduce fluctuations or
disturbances in your system
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
In our work, It means
Doing iterations is not enough
We also need to understand the
nature of the objective
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Some exemples in context ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Suppose that
- you know the domain very well
- the team is skilled and mature
- business know exactly the changes
You would try to setup a
negative feedback loop in order
to maintain a sustainable flow
of work
(velocity? Regression tests ?…)
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
a startup
Is a tool to generate and test ideas (to
find a working business)
then, by design, it is a positive
feedback loop
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Ideas @ code level
TDD vs
REPL vs
Live vs
Just implement it ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Game exemple (who cares about doing
a beer pong after all ?)
How should I modelize my
game in code ?
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Game exemple (who cares about doing
a beer pong after all ?)
How should I modelize my game in code ?
Constraints
Boundaries
Movement
(Angle, force…)
TDD
works well
Test it live
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
You must design organically, with running code
providing feedback between decisions
Your development environment must provide
rapid response to small changes
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
You must design organically, with running code
providing feedback between decisions
Your development environment must provide
rapid response to small changes
Scripting or repl can be even
more effective than tests
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
You must design organically, with running code
providing feedback between decisions
Your development environment must provide
rapid response to small changes
Scripting or repl can be even
more effective than tests
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Simple design
dynamo
(also a positive feedback loop)
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
All of this is about aligning
mental models and expectations
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
To resume:
Always focus on
WHY you’re doing
something before
the HOW
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
One more thing
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
- Richard Feynman
[Notes] aren’t a record of
my thinking process. They
are my thinking process
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Writing should be a Positive Feedback Loop
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Finally
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Agility is About
FEEDBACK
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
And Feedback Loops
are about
Learning
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Learning
Agile
Is
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Carefully setup and listening to your
feedback loops is the only way to learn
Learning
Agile
Is
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
And continuous learning is the only
way to build right the right product
Learning
Agile
Is
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
That’s not new…
Praxis
(πρᾶξις)
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
PRAXIS Learn by doing
THEORY
PRACTICE
LEARN
(activity engaged by free people)
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Recap
(yep, this means we’re approaching the end of this talk ;))
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Let’s try to
Develop with agility
Instead of doing agile
Recap
1
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Let’s try to
Develop with agility
Instead of doing agile
Recap
When it doesn’t make sense a priori
You need feedback loops
To constantly watch where you’re going
1
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Let’s try to
Develop with agility
Instead of doing agile
Recap
When it doesn’t make sense a priori
You need feedback loops
To constantly watch where you’re going
Think more in systems
To see global outcome
Instead of local optimization
1
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Let’s try to
Develop with agility
Instead of doing agile
Recap
When it doesn’t make sense a priori
You need feedback loops
To constantly watch where you’re going
Think more in systems
To see global outcome
Instead of local optimization
1 2
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Let’s try to
Develop with agility
Instead of doing agile
Recap
When it doesn’t make sense a priori
You need feedback loops
To constantly watch where you’re going
Think more in systems
To see global outcome
Instead of local optimization
1 2
3
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Let’s try to
Develop with agility
Instead of doing agile
Recap
When it doesn’t make sense a priori
You need feedback loops
To constantly watch where you’re going
Think more in systems
To see global outcome
Instead of local optimization
1 2
3
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Let’s try to
Develop with agility
Instead of doing agile
Recap
When it doesn’t make sense a priori
You need feedback loops
To constantly watch where you’re going
Think more in systems
To see global outcome
Instead of local optimization
1 2
3
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Let’s try to
Develop with agility
Instead of doing agile
Recap
When it doesn’t make sense a priori
You need feedback loops
To constantly watch where you’re going
Think more in systems
To see global outcome
Instead of local optimization
1 2
3
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
ncrafts.io
+ NewCrafts Meetup on Dec, 9 in
Paris with Jon Skeet
https://www.meetup.com/fr-FR/NewCrafts/
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
events.ncrafts.io
Your own tech event organized by us
conf@ncrafts.io
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Refs
Very interesting talks and discussions about agile:
- Dave Thomas: agile is dead (https://www.youtube.com/watch?v=a-BOSpxYJ9M)
- Erik Meijer : One hacker way (https://www.youtube.com/watch?v=2u0sNRO-QKQ)
- David Heinemeier Hansson: is TDD dead? (https://www.youtube.com/watch?v=z9quxZsLcfo)
Stupid stuff but good to look at some people see agile:
- Why Agile Development is a Waste of Time and Money for Companies ? https://www.youtube.com/watch?v=2cxGI0oZzas
Complementary talks to some topics:
- Mathias Brandewinder: The T in TDD http://videos.ncrafts.io/video/131660199
- Liz Kheog : Cognitive Cynefin: How language and bias keep us complicated http://videos.ncrafts.io/video/167699030
- Sönke Ahrens : How to take smart notes http://videos.ncrafts.io/video/275530205
- Jessica Kerr: The origins of Opera and the future of programming http://videos.ncrafts.io/video/275530178
- Robert Virding: On Language design http://videos.ncrafts.io/video/221107808
- Romeu Moura : Reading code under the influence of one’s emotions http://videos.ncrafts.io/video/221102445
- Brian Marick - Learning from how science and philosophy progress http://videos.ncrafts.io/video/338450750
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Agile Feedback loops
Thank you!
@rhwy #jetbrainsnight paris 2019 - Rui Carvalho hello@rui.fr
Version 3.0.2019.11
Sources
Fonts (Google fonts):
https://fonts.google.com/?selection.family=Amatic+SC|Leckerli+One|Life+Savers|Megrim|Pacifico|
Shadows+Into+Light|Titillium+Web:200,900&category=Sans+Serif&thickness=9
• Titillium Web, sans-serif
• Shadows Into Light, cursive
• Amatic SC, cursive
• Leckerli One, cursive
Images (free reuse and distribution):
✤https://pxhere.com
✤https://unsplash.com
✤https://thenounproject.com/

Agile Feedback Loops

  • 1.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr AGILE FEEDBACK LOOPS Iterative thoughts on agile values
  • 2.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Hello, I’m Rui! I help people creating value with software I help the scene organizing stuff
  • 3.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr During this talk Why How It is connected to agile It matters What Is this really about
  • 4.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Why It matters
  • 5.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Why ? I’m here to talk -now- about Feedback loops and agile ?
  • 6.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Interesting stuff has been put on the table… « TDD is dead » @dhh « Agile is dead » @pragdave « Agile is a cancer » @headinabox This is one is sarcastic
  • 7.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr People complain - criticize of agile - criticize of the practices - it doesn’t solve/change anything - they are just defending other ideas
  • 8.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr How Did we get there ?
  • 9.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr There could be tons of good reasons after all…
  • 10.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr There could be tons of good reasons after all… 1. Copying the processes with Cargo cult effect ?
  • 11.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr There could be tons of good reasons after all… 1. Copying the processes with Cargo cult effect ? 2. Underestimated complexity ?
  • 12.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr There could be tons of good reasons after all… 1. Copying the processes with Cargo cult effect ? 2. Underestimated complexity ? 3. Our history + systemic traction to old stable state ?
  • 13.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr There could be tons of good reasons after all… 1. Copying the processes with Cargo cult effect ? 2. Underestimated complexity ? 3. Our history + systemic traction to old stable state ?
  • 14.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr WHat is the reality of Agile for most people after all ? - following the process ? - is there more value than before ? - is there a better lead time ? - better quality ? …
  • 15.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Run it by the book… «  People who doesn’t understand core values focus on the process »
  • 16.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Semantics matter
  • 17.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Agile is an adjective Not a noun !
  • 18.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Agile is an adjective not a noun Adj: I’m happy! Noun: can I buy some happy?
  • 19.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Agile is an adjective not a noun Adj: I’m happy! Noun: can I buy some happy? Nonsense Right ?
  • 20.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr So, why are you doing Agile then ?
  • 21.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr So, why are you doing Agile then ? Let’s try to Develop with agility Instead ok ?
  • 22.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr There could be tons of good reasons after all… 1. Copying the processes with Cargo cult effect ? 2. Underestimated complexity ? 3. Our history + systemic traction to old stable state ?
  • 23.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Complexity is everywhere
  • 24.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Complexity is everywhere Accidental Essential Domain, technical… Us …
  • 25.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Complexity is everywhere Cynefin A conceptual framework for decision making
  • 26.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Complexity is everywhere Cynefin
  • 27.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Complexity is everywhere Cynefin Your enterprise is probably here, good place for agile
  • 28.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Complexity is everywhere Cynefin Your enterprise is probably here, good place for agile Most of the time Problems happen because you try to use known recipes from complicated space in a complex space whereas it doesn’t make sense a-priori
  • 29.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Complexity is everywhere Cynefin When it doesn’t make sense a priori You need feedback loops To constantly watch where you’re going
  • 30.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr There could be tons of good reasons after all… 1. Copying the processes with Cargo cult effect ? 2. Underestimated complexity ? 3. Our history + systemic traction to old stable state ?
  • 31.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Systemic Enterprises are living systems
  • 32.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Systemic Enterprises are living systems Despite best effort of its constituting elements a system will try to naturally rollback to it’s natural state
  • 33.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Systemic Enterprises are living systems Despite best effort of its constituting elements a system will try to naturally rollback to it’s natural state We’ll see later that’s also a negative feedback loop
  • 34.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Occidental culture has a tendency to put everything in a box, categorize & prioritize -> that doesn’t help to understand the true nature of complex systems -> that doesn’t help the flow History
  • 35.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Enterprises still work with same as manufactures 100 years ago … History Accidental complexity
  • 36.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Systems Think more in systems To see global outcome Instead of local optimization
  • 37.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr How Is it connected to agile?
  • 38.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Roll back to agile roots
  • 39.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Well, it’s in its DNA after all…
  • 40.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Agile Manifesto (2001) Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
  • 41.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Agile Manifesto (2001) Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan These are all feedback loops at different levels of interaction
  • 42.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr XP VALUES Communication Simplicity Courage Respect Feedback
  • 43.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr SCRUM cycles
  • 44.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr eXtreme Programming is an ideal many software shops would love to reach, but with the constant pressures to produce software quickly, they cannot actually implement it. The Agile software process allows a company to implement eXtreme Programming quickly and immediately- and to begin producing software incrementally in as little as 30 days! Implementing eXtreme Programming is easier said than done. The process can be time consuming and actually slow down current software projects that are in process. This book shows readers how to use SCRUM, an Agile software development process, to quickly and seamlessly implement XP in their shop-while still producing actual software. Using SCRUM and the Agile process can virtually eliminate all downtime during an XP implementation.
  • 45.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr XP cycles
  • 46.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr SCRUM -> XP Cycle mapping
  • 47.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr SCRUM -> XP Missing Cycles
  • 48.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Respecting core values, We need all feedback loops to achieve quality!
  • 49.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Respecting core values, We need all feedback loops to achieve quality! Project Management Code & Quality
  • 50.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Question …
  • 51.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr If you could only keep one of these ceremonies, which one ? Daily Planning Refinement Demo Retrospective
  • 52.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr What Are we talking about after all?
  • 53.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr ALL FEEDBACK LOOPS MATTERS! The smaller the feedback loop is, the best direction you have
  • 54.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Iteration Facilitators Feedback loops types are
  • 55.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Iteration Facilitators iteration size = Task effort 1
  • 56.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr That works for collaboration too Number of people working in collaboration = Complexity 1
  • 57.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr because it’s about feedback
  • 58.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr because it’s about feedback, and because we’re doing iterations, People call it Feedback loops
  • 59.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Feedback loops are real things Not only software development practices
  • 60.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Feedback Loops A B Feedback Loops occur 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
  • 61.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr More important, There is 2 kinds of feedback loops The positive one The negative one
  • 62.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Attention, common sense tend to define: Positive feedback loop = good Negative feedback loop = Bad
  • 63.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr BAD IT’S NOT ABOUT & GOOD
  • 64.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr IT’S ABOUT REGULATION & AMPLIFICATION
  • 65.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Positive Feedback loops The production of A will help more production of B, that, in return, will help more production of A
  • 66.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Negative Feedback loops Negative feedback loops occurs when you need to reduce fluctuations or disturbances in your system
  • 67.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr In our work, It means Doing iterations is not enough We also need to understand the nature of the objective
  • 68.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Some exemples in context ?
  • 69.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Suppose that - you know the domain very well - the team is skilled and mature - business know exactly the changes You would try to setup a negative feedback loop in order to maintain a sustainable flow of work (velocity? Regression tests ?…)
  • 70.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr a startup Is a tool to generate and test ideas (to find a working business) then, by design, it is a positive feedback loop
  • 71.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Ideas @ code level TDD vs REPL vs Live vs Just implement it ?
  • 72.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Game exemple (who cares about doing a beer pong after all ?) How should I modelize my game in code ?
  • 73.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Game exemple (who cares about doing a beer pong after all ?) How should I modelize my game in code ? Constraints Boundaries Movement (Angle, force…) TDD works well Test it live
  • 74.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr You must design organically, with running code providing feedback between decisions Your development environment must provide rapid response to small changes
  • 75.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr You must design organically, with running code providing feedback between decisions Your development environment must provide rapid response to small changes Scripting or repl can be even more effective than tests
  • 76.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr You must design organically, with running code providing feedback between decisions Your development environment must provide rapid response to small changes Scripting or repl can be even more effective than tests
  • 77.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Simple design dynamo (also a positive feedback loop)
  • 78.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr All of this is about aligning mental models and expectations
  • 79.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr To resume: Always focus on WHY you’re doing something before the HOW
  • 80.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr One more thing
  • 81.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr - Richard Feynman [Notes] aren’t a record of my thinking process. They are my thinking process
  • 82.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Writing should be a Positive Feedback Loop
  • 83.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Finally
  • 84.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Agility is About FEEDBACK
  • 85.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr And Feedback Loops are about Learning
  • 86.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Learning Agile Is
  • 87.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Carefully setup and listening to your feedback loops is the only way to learn Learning Agile Is
  • 88.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr And continuous learning is the only way to build right the right product Learning Agile Is
  • 89.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr That’s not new… Praxis (πρᾶξις)
  • 90.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr PRAXIS Learn by doing THEORY PRACTICE LEARN (activity engaged by free people)
  • 91.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Recap (yep, this means we’re approaching the end of this talk ;))
  • 92.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Let’s try to Develop with agility Instead of doing agile Recap 1
  • 93.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Let’s try to Develop with agility Instead of doing agile Recap When it doesn’t make sense a priori You need feedback loops To constantly watch where you’re going 1
  • 94.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Let’s try to Develop with agility Instead of doing agile Recap When it doesn’t make sense a priori You need feedback loops To constantly watch where you’re going Think more in systems To see global outcome Instead of local optimization 1
  • 95.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Let’s try to Develop with agility Instead of doing agile Recap When it doesn’t make sense a priori You need feedback loops To constantly watch where you’re going Think more in systems To see global outcome Instead of local optimization 1 2
  • 96.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Let’s try to Develop with agility Instead of doing agile Recap When it doesn’t make sense a priori You need feedback loops To constantly watch where you’re going Think more in systems To see global outcome Instead of local optimization 1 2 3
  • 97.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Let’s try to Develop with agility Instead of doing agile Recap When it doesn’t make sense a priori You need feedback loops To constantly watch where you’re going Think more in systems To see global outcome Instead of local optimization 1 2 3
  • 98.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Let’s try to Develop with agility Instead of doing agile Recap When it doesn’t make sense a priori You need feedback loops To constantly watch where you’re going Think more in systems To see global outcome Instead of local optimization 1 2 3
  • 99.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Let’s try to Develop with agility Instead of doing agile Recap When it doesn’t make sense a priori You need feedback loops To constantly watch where you’re going Think more in systems To see global outcome Instead of local optimization 1 2 3
  • 100.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr ncrafts.io + NewCrafts Meetup on Dec, 9 in Paris with Jon Skeet https://www.meetup.com/fr-FR/NewCrafts/
  • 101.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr events.ncrafts.io Your own tech event organized by us conf@ncrafts.io
  • 102.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Refs Very interesting talks and discussions about agile: - Dave Thomas: agile is dead (https://www.youtube.com/watch?v=a-BOSpxYJ9M) - Erik Meijer : One hacker way (https://www.youtube.com/watch?v=2u0sNRO-QKQ) - David Heinemeier Hansson: is TDD dead? (https://www.youtube.com/watch?v=z9quxZsLcfo) Stupid stuff but good to look at some people see agile: - Why Agile Development is a Waste of Time and Money for Companies ? https://www.youtube.com/watch?v=2cxGI0oZzas Complementary talks to some topics: - Mathias Brandewinder: The T in TDD http://videos.ncrafts.io/video/131660199 - Liz Kheog : Cognitive Cynefin: How language and bias keep us complicated http://videos.ncrafts.io/video/167699030 - Sönke Ahrens : How to take smart notes http://videos.ncrafts.io/video/275530205 - Jessica Kerr: The origins of Opera and the future of programming http://videos.ncrafts.io/video/275530178 - Robert Virding: On Language design http://videos.ncrafts.io/video/221107808 - Romeu Moura : Reading code under the influence of one’s emotions http://videos.ncrafts.io/video/221102445 - Brian Marick - Learning from how science and philosophy progress http://videos.ncrafts.io/video/338450750
  • 103.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Agile Feedback loops Thank you!
  • 104.
    @rhwy #jetbrainsnight paris2019 - Rui Carvalho hello@rui.fr Version 3.0.2019.11
  • 105.
    Sources Fonts (Google fonts): https://fonts.google.com/?selection.family=Amatic+SC|Leckerli+One|Life+Savers|Megrim|Pacifico| Shadows+Into+Light|Titillium+Web:200,900&category=Sans+Serif&thickness=9 •Titillium Web, sans-serif • Shadows Into Light, cursive • Amatic SC, cursive • Leckerli One, cursive Images (free reuse and distribution): ✤https://pxhere.com ✤https://unsplash.com ✤https://thenounproject.com/