Feedback Loops and Agile Software Development

The June 2011 edition of Wired published the article The Feedback Loop by Thomas Goetz.  Thomas mentions:

“Feedback loops are powerful tools that can help people change bad behavior.  Just as important, they can encourage good habits, turning progress itself into a reward.”

Thomas discusses how feedback loops were used to change behavior in drivers by getting them to slow down in school zones.  A feedback loop involves four distinct stages, which I have paraphrased as follows:

  1. Data – gather evidence of behavior that can measured, captured, and stored
  2. Information – relay with emotional resonance the relevance of the data to the individual
  3. Consequence – reinforce purpose and enable the individual to sense opportunity to act on the information
  4. Action – individual engages  to recalibrate a behavior with action

The resulting action can then be measured and the feedback loop restarted with every action stimulating new behaviors that get them closer to the purpose or goal.

After reading the article, I contemplated that Agile software development is built upon feedback loops.  Agile software development is described as being a software development methodology based on iterative and incremental development where solutions evolve through collaboration.

Iterations or sprints are typically timeframes of one to four weeks resulting in working software.  An iteration is planned (goal), progress is captured via daily stand-up meetings (data) and communicated via burn down charts and quality metrics (information).  The team understands the goal and how the information relates (consequence) and is encouraged to improve (action).  These actions typically result in getting closer to the goal, whether that is via improved planning, efficiency or quality.

Agile developers typically receive feedback in many practices, including code reviews, unit tests, and continuous integration.  These are designed to encourage good habits.

Agile project management is responsible for ensuring purpose or goals are effectively communicated to the team and evidence collected of their achievement.  These goals would focus on value, quality, and constraints (scope, cost and schedule).  Project visibility is reported to stakeholders, providing feedback in another loop.

The Declaration of Interdependence was written in 2005 as an adjunct to the Agile Manifesto by a group of successful project leaders, as follows:

  • We increase return on investment by making continuous flow of value our focus
  • We deliver reliable results by engaging customers in frequent interactions and shared ownership
  • We expect uncertainty and manage for it through iterations, anticipation and adaptation
  • We unleash creativity and innovation by recognizing that individuals are the ultimate source of value, and creating an environment where they can make a difference
  • We boost performance through group accountability for results and shared responsibility for team effectiveness
  • We improve effectiveness and reliability through situationally specific strategies, processes and practices”

Without feedback loops, these values would not be achievable in the whole.  In particular, adaptation – the act of adapting  necessitates feedback.

Advertisements

Tags: ,

One Response to “Feedback Loops and Agile Software Development”

  1. ken Says:

    Adam, thanks for decomposing feedback loops using Goetz’s structure. It is one thing to say that Agile is about feedback loops and another to break it down and think about how each of the components we value contributes to that mechanism.

    It reminds of the first time I was introduced to XP through Embrace Change, reading about the core disciplines of XP and how they all fed into each other. Disciplines of agile are reinforced much more strongly when we know how they work in synthesis with each other.

    Kind regards,
    –Ken

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: