The role of continuous feedback in software development
Tags: agile, development, productivity, projectmanagement
Published: 2023-06-22 12:01:25

​​​Just like a boomerang coming back to you, feedback in software development and product management helps you improve. In this article, we're going to explore feedback mechanisms and purpose in its broader sense. Not just person-to-person feedback, but also product, market, and development practices. We'll back up our points with evidence from psychological research, so buckle up for a fact-based feedback adventure!

Several kinds of research have been performed to analyze the relationship between feedback and improvement. In this post, I've picked two well fitting to the world of software development.

By understanding Kahneman's and Melton's researches, we can see why immediate feedback is so crucial to our software development and product management success.

##1. The Kahneman study on immediate vs. delayed feedback

In his study, psychologist Daniel Kahneman compares the experiences of anesthesiologists and radiologists to illustrate the difference between immediate and delayed feedback. He analyzed their job's inherent feedback nature. He then assessed the effect of such an environment on an individual's development.

A radiologist is a type of doctor who specializes in medical imaging. Radiologists analyze images, such as X-rays, to help diagnose, monitor, and treat various conditions or injuries. An anesthesiologist is a doctor who gives a patient medication so they do not feel pain when undergoing surgery.

There is one key difference when it comes to the feedback loop.

Anesthesiologists work alongside the patient and get feedback straight away, such as whether the patient is unconscious with stable vital signs. On the other hand, radiologists don't get rapid feedback on their diagnoses, if they get it at all. They often have to wait for weeks or even months to find out whether their diagnosis was correct.

The immediate feedback helps anesthesiologists learn the regularities of their environment and adjust their actions accordingly. As a result, anesthesiologists tend to have a higher success rate in administering anesthesia and managing patients throughout the procedure.

The delay in feedback for radiologists makes it much harder to improve their skills and recognize patterns. Consequently, radiologists typically correctly diagnose breast cancer from X-rays just 70% of the time.

##2. The Melton study on predicting freshman success

Richard Melton's study aimed to predict the grades of freshmen at the end of their first year of college. A set of 14 counselors interviewed each student for about an hour and had access to high school grades, several aptitude tests, and a four-page personal statement. Based on this information, the counselors made predictions about the students' first-year college performance.

In comparison, Melton created an algorithm that used only high school grades and one aptitude test as input. Despite the limited information, the formula was more accurate than 11 of the 14 counselors, outperforming them by a significant margin. Melton's study was reported alongside over a dozen similar results across various domains, such as predicting parole violations and success in pilot training.

The key finding of this study is that, in many cases, simple algorithms using limited data can outperform human judgment. This insight can be applied to various decision-making processes where data is available, emphasizing the importance of relying on (simplified) data and patterns rather than solely on subjective assessments of complex factors.

##Benefits of continuous feedback in software development

Imagine your software development team as a well-oiled machine. With continuous feedback, the gears are in sync, communication is smooth, and everyone's on the same page. Like Kahneman's anesthesiologists, the immediate feedback loop helps your team adapt quickly to change, keeping them nimble and responsive. Plus, it boosts team morale and motivation, as everyone knows they work together towards a common goal. It's like a software development symphony!

Agile development methods employ short iterations. Those are tools that transform findings from feedback loops into high business value and relevance when performed correctly.

Many teams adopting Agile development approach miss this aspect. It is not sufficient to develop in small chunks and short cycles on its own. If a relevant feedback loop mechanism isn't employed, the whole point of agile development can be missed because the ecosystem does not improve itself.

##Techniques for effective continuous feedback in software development

According to Kahneman's concept of deliberate practice, a guitarist can't become an expert by playing the same songs for 25 years. If we apply this logic to our software development team, it needs to be pushed beyond their comfort zone to grow.

Immediate feedback creates a productive learning environment, helping your team members become experts in their craft. Not only can it help your team collaborate and improve individual skills, but it can also give valuable insights into your product's market relevancy, usability, and development practices.

In software development and product management, this translates to the effective employment of metrics, analytics, and user feedback. Developers and managers can make more informed decisions about the product's direction, team performance, and areas for improvement.

Furthermore, implementing continuous integration, automated testing, and regular code reviews can provide developers with a very short feedback cycle, enabling them to learn quickly and avoid making the same mistakes, ultimately leading to a higher-quality product and a more efficient development process.

So let's now be more particular about how to incorporate findings from the mentioned studies in practice. I'll break down typical best practices corresponding to the feedback studies I mentioned earlier.

##Applying the Kahneman and Meloton studies to software development

There are several typical ways to foster immediate feedback mechanisms in software development.

*Continuous integration*

Continuous integration (CI) can be implemented to provide immediate feedback on code changes. As developers commit code to the shared repository, CI tools automatically build and test the application, providing rapid feedback on whether the changes pass or fail the tests. This immediate feedback allows developers to quickly fix any issues, reducing the risk of accumulating technical debt and ensuring the product remains stable.

Code reviews by peers are often an integral part of the continuous integration process.

*Testing in minimum increments*

By testing in minimum increments the team takes every chance it gets to test a newly written code - even multiple times per day. The smaller the change is, the shorter the feedback loop is. That is why it is so important to have automated processes set up to make this a pain-free process.

*Frequent reviews with stakeholders*

Another way to incorporate immediate feedback in Agile development is by conducting regular sprint reviews and surveys with stakeholders and end-users. These reviews provide an opportunity for the team to demonstrate the functionality they have completed and gather feedback from stakeholders.

Qualitative or quantitative surveys provide in-depth feedback and sanity checks. The team can then use this feedback to prioritize work for the next sprint, ensuring that the most important features and improvements are addressed promptly.

*Retrospectives*

An analogy of reviews, which are outward-oriented, are retrospectives. While it is more inward-focused, it is a great tool to provide access and obtain immediate feedback from within the team. There is no need to keep rigorous and employ complex or sophisticated mechanisms, keeping it as a simple and to-the-point discussion is often sufficient.

##Leveraging the Melton study in software development

The Melton study demonstrates that simple algorithms using limited data can outperform human judgment. In software development, this insight highlights the importance of relying on data and patterns to inform decision-making, rather than solely on subjective assessments.

*Using metrics to inform backlog prioritization*

One way to apply data-driven decision-making in Agile development is by using metrics to inform backlog prioritization. For example, a product manager could analyze user engagement data, customer feedback, and bug reports to determine which features or improvements should be prioritized in the backlog. By using data to inform these decisions, the development team can focus on the most impactful work, ultimately leading to a better product that meets the needs of its users.

The takeaway here is that the statistics don't necessarily need to be extremely complex and sophisticated. Quite the contrary - a simple but highly relevant metric helps tremendously. Such simple metrics can be user story completion rates, velocity measurement, net promoter score, time to restore a service etc. Metrics that are really trivial in principle.

Managers can identify trends and patterns that indicate strengths and weaknesses by collecting data on the team's velocity, code quality, and other relevant metrics. People sometimes evaluate snapshots of situations without seeing the trends.

This data-driven approach can lead to more effective and efficient development teams.

##Tips for making the continuous feedback work

Now that we've explored the what, why, and how of continuous feedback, let's talk about making it work in real life. First, create a feedback-friendly culture where team members feel safe to share their thoughts and ideas. Encourage open communication and make feedback sessions a regular part of your team's routine. This is paramount, without a culture valuing honesty, feedback receptiveness is greatly hindered.

A side note for managers: this culture of human-to-human feedback goes both ways—be receptive to the feedback you receive and use it to sharpen your own skills and processes.

But wait, there's more! We must broaden our understanding of feedback by extending it beyond the individual level. Design the entire development system to generate and be responsive to feedback, encompassing aspects such as development practices, product quality, financial efficiency, and any other aspect crucial to the product being developed.

A strong emphasis on feedback loops is a crucial factor that distinguishes traditional waterfall development methods from Agile development. Simply adopting short iterations and frequent planning cycles isn't enough to fully embrace the Agile philosophy if feedback reception mechanisms don't exist. Establishing a system that generates and processes feedback is absolutely essential. Being able to gather feedback and react to it is Agile's primary objective.

##Conclusion

Just as a chef needs to taste his dish while cooking to ensure the flavors are on point, continuous feedback is an essential ingredient in the recipe for successful software development and product management.

By embracing feedback in various forms - from human-to-human interactions to product metrics and beyond - you'll create an environment where learning, growth, and improvement thrive. So go on, add a dash of continuous feedback to your development process and watch the magic happen!

Written by Otakar Krus