How many times have you heard development teams, support teams, or even ops teams say, “keep me in the loop”? Being out of the loop in the ever-changing software world can cost software companies a great deal, from delayed releases, errors moving into production, disjointed value streams, and a lack of compliance, governance and security, which exposes the product to vulnerabilities.
In the software world, staying “in the loop” means implementing and utilizing feedback loops, one of the basic concepts of systems thinking and lean principles. It is crucial to understand feedback loops and how they influence your organization’s ability to deliver value with speed and quality.
What are feedback loops and why are they important?
To understand feedback loops, one has to understand systems thinking and how the approach is used to create value and solve problems in software development. Simply defined, systems thinking is a method of critical thinking where you can analyze the relationship between the system’s parts to understand a situation to make better decisions. The value is being able to use this holistic view perspective to identify an actual problem, while understanding the extended interconnected network that surrounds it. Unlike traditional analysis that focuses on separating the individual parts of the problems caused, systems thinking focuses on how the individual parts interact with each other and helps identify the cause of a problem.
Systems thinking is not linear — it happens in cycles and loops. All parts of the system are connected, so a change in one part generates waves of changes that reach all other parts. The action returns to the starting point in a modified form, which forms a loop — a feedback loop.
Want to understand systems thinking better? Watch this presentation.
Feedback is an integral part of a system. No feedback means no system. Feedback is often associated with any reaction, but in reality, it means the perception of the result of our actions affecting subsequent actions — a two-way communication. What we as ‘humans’ do with the feedback we receive forms the feedback loop, although typically we may be used to only looking at it as a one-way influence.
Feedback loops are the process in which a change or output from one part of the value stream triggers a resulting action in another part of the value stream. For example, when a defect is logged during testing, it triggers a resulting change to the code in development.
Feedback loops increase productivity, help identify areas for improvement — which turn into actionable work items — and enable teams to track and solve problems related to product delivery. This in turn helps teams collaborate and coordinate better, and be more able to meet deliverable commitments.
The lack of strong feedback loops and faster, automated processes lead to:
- Later detection of errors
- Increased risk of a deployment, causing downtime
- Delayed roll-back in case of issues
Some of the common mistakes with feedback loops
When it comes to software development, there are direct and indirect feedback loops, said Lance Knight, COO, ConnectALL in a recent SD Times article Creating Value Requires Feedback Loops. “All the information coming from the right of software delivery — meaning operations, DevOps, all that stuff — those are direct feedback loops. ‘I found a vulnerability; you need to look at it.’ That’s a direct feedback loop. An indirect feedback loop in my world would be, ‘I don’t know if I like the way that looks.’ Or it’s comments and collaboration. Those are more indirect. And those are different patterns. The direct feedback has patterns; the indirect I would say doesn’t.”
Also watch Don’t Have Another Bad Day- Ensure the Code You’re Moving to Production is Safe
The most common mistakes that teams make in regards to feedback loops are:
- Expecting notifications to work as feedback loops. Alerts and notifications are just pieces of information. For example, developers get emails on every failed build. This information may or may not lead to feedback loop generation. It’s what we as ‘humans’ do with this information that creates a feedback loop.
- Failing to assess the current situation and map value. Before you apply new tools or change practices and architectures, you need to understand and map the flow of work throughout the value stream and identify bottlenecks. During this mapping exercise, feedback loops begin to get clearer and more visible.
- Overlooking loops and focusing on feedback. You have set up your automated workflow and continuous integration, and your teams build, test, and deploy to every commit. Yet, you see a lot of builds and deployments failing. So instead of looking at the root cause, you may reduce the number of sprints, turn off testing, or even stop automating. All this results in delayed releases, and reduced feedback. You may have managed to get feedback but the loop ended up being destroyed.
- Assuming all feedback loops are good. Amplifying any feedback loop may backfire drastically. For example, a feedback loop resulting from automated alerts may make your continuous integration effort ineffective. Sometimes you may even end up amplifying feedback loops that are not in your continuous integration system.
How do you identify if feedback loops are working?
As quoted by Gene Kim in his book The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win, “the goal of almost any process improvement initiative is to shorten and amplify feedback loops so necessary corrections can be continually made. It is important to understand and respond to all customers, internal and external, shorten and amplify all feedback loops, and embed knowledge where we need it.”
How can you make sure that you are amplifying the right feedback loops that lead to better quality, speed and agility, and how do you identify the bad ones that interfere with flow?
- All automated feedback loops should be actionable and relevant.
- Revisit and review existing feedback loops and analyze what each does.
- Identify whether the feedback loops are only stabilizing and preventing disasters, or if they are having a positive impact on, or creating change within your system. Focus on those that provide value.
- Create human-based feedback loops alongside the automated loops where applicable.
Is your organization using feedback loops effectively? To find out, speak to our team of value stream management experts.
Head of Content Marketing at ConnectALL, responsible for communication and content marketing strategy. For two decades, I’ve assisted businesses to integrate content marketing into their marketing plans to achieve their business goals. I specialize in creating and developing content (inbound and outbound) across various online and offline channels from websites, blogs, and social media to email marketing and marketing communication collateral.