Skip to content
Puneet Sahil April 22, 2024 3 min read

Building Quality Software: Embracing Feedback Loops

In today's fast-paced digital world, delivering high-quality software is no longer just a goal – it's a necessity.

As a technology solutions organisation, we constantly strive to meet the ever-evolving demands of our customers, and one crucial element that can make or break our success is the incorporation of Feedback Loops throughout the software development process.

Traditionally, organisations have relied solely on getting feedback through Testing done at the end of a feature development. With this approach, we are likely to get undesired outcomes over time.

Here’s why:

The dev team only learns about any issues sprints/weeks, and sometimes even months after they introduced the change that caused the error. By then, the link between cause and effect has likely faded, solving the problem requires firefighting and archaeology, and, worst of all, our ability to learn from the mistake and integrate it into our future work is significantly diminished. [Ref: The DevOps Handbook by Gene Kim, Jez Humble, Patrick Debois and John Willis]. Testing done at the end of feature development is merely one sort of feedback.

One analogy that resonates with me deeply which captures the essence of constant adjustment of our course in software development is that of a self-driving car adjusting its course based on real-time sensor data. As software development teams we must continuously gather and act upon feedback to steer our projects towards success.

Let’s delve into the various Feedback Loops that can empower software teams to deliver high-quality products:

  • Dev Tests: These tests ensure that the code aligns with the programmer's intentions, serving as the first line of defence against bugs and errors.
  • CI Tests (Continuous Integration): CI tests go a step further, verifying that the newly written code integrates seamlessly with the existing codebase without disrupting functionality.
  • Exploratory Tests: Automated tests are invaluable, but human intuition remains unparalleled.
    Exploratory testing allows teams to uncover unforeseen consequences and edge cases that automated tests may overlook.
  • Acceptance Tests: Crucial for ensuring that the delivered features meet the requirements and expectations outlined by stakeholders.
  • Stakeholder Feedback: Regular checkpoints with stakeholders ensure alignment with project goals and provide valuable insights into the direction of development efforts.
  • Customer Feedback: The ultimate litmus test of software quality, customer feedback illuminates areas for improvement and validates the relevance of features from the end-user perspective.

Each of the above Feedback Loops operates on its own timeline, with varying degrees of immediacy and impact. However, the collective synergy of these feedback mechanisms propels the development process forward, fostering a culture of continuous improvement and innovation.

The figure below illustrates the different Feedback Loops and their Feedback Cycle Times.

 

Diagram illustrating different Feedback Loops at different sizes

 

[Source: Hendrickson, Elisabeth. “DOES15—Elisabeth Hendrickson—It’s All About Feedback.” Posted by DevOps Enterprise Summit, November 5, 2015]

It's important to remember that Feedback Loops are not set-and-forget mechanisms. Over time, they can become less effective due to factors like changing requirements, technical debt, or simply complacency. This phenomenon, known as "Feedback Entropy," - a term used in the talk on Feedback by Elisabeth Hendrickson at the DevOps Enterprise Summit, 2015 - describes the tendency for feedback loops to degrade over time.

She suggests a number of ways to combat feedback entropy:

  • Lean Test Suites and Build Times: Regularly review and remove tests that are no longer providing value
  • Quality of Feedback: Emphasise the importance of evidence-based feedback over subjective opinions, addressing the root causes of false alarms to ensure that feedback is informative and actionable.
  • Closing the Loop on Feedback: Make sure that feedback is communicated to the people who can take action on it.

By embracing a holistic approach to feedback integration and management, we can elevate our software development practices to new heights, delivering solutions that not only meet but exceed customer expectations.

References

Hendrickson, E. (2015). DOES15—Elisabeth Hendrickson—It’s All About Feedback. Posted by DevOps Enterprise Summit, November 5, 2015.

The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations, By Gene Kim, Jez Humble, Patrick Debois, & John Willis