A basic concept of system thinking as well as a vital part of your organization’s success, understanding and properly implementing DevOps feedback loops in your business is a “make-it or break-it” kind of thing.
As a DevOps professional, you are focusing on creating a streamlined relationship between development and IT operations. However, to cultivate a successful relationship between and collaboration of these two business units -- focusing on both speed and quality -- you must first know how feedback loops influence your process improvements.
A common DevOps term, feedback loops are a largely misunderstood concept Let's begin by addressing what the words “feedback” and “loop” mean, and then how they work together to complete useful work. Feedback is defined in the Oxford Dictionary as, “The modification or control of a process or system by its results or effects” and loop is defined in the Oxford Dictionary as, “A structure, series, or process, the end of which is connected to the beginning.” When we put these two terms together, we understand the meaning of a feedback loop to be a system where the outputs are put back into the inputs to improve the process or product while increasing or decreasing the effects produced later. Feedback loops are basically an internal review of how teams, systems, and users function.
Yes, this still seems kind of confusing. So, let’s dive deeper into how feedback loops work in business and technology.
As many experts agree, “feedback loops enforce priorities and project goals so that the freedom and fast pace in development doesn’t lead it astray.” The objective of this system is to create a circuit between the two above-mentioned DevOps business units. Essentially starting a flow where when a change happens in one unit, it causes a change in the other unit, eventually leading to a change in the first unit. This allows a company the agility to perform necessary corrections continually in the right direction. Using a feedback loop to collect IT data and create a constant flow of information simply means valuable growth at an enormous scale. And, one of the best reasons to use DevOps feedback loops is to bridge the gap between software function and customers’ expectations. This is organized, optimized change!
A developer (input) writes some code for a new program. He then sends the newly written code to the designer to build it. After that, an OS runs the built-out code (output). While running it, the developer observes the code. After observation, he determines what to do next (input). He sends the next steps back to the designer and again observes it on the OS (output). Can you see the loop? The purpose of the feedback loop here is to streamline the way the code is written, delivered, built, processed, and the time it takes to input modifications. If one of the steps in information delivery is off, the entire loop will be off.
Reinforcing (positive)
Also called an accelerating loop or change, this type of loop happens when a group sees a positive increase resulting in a second group seeing a positive increase, which then causes a positive increase in the first group. Please note that it can go the other way with a negative influence as well. Take a moment to note how the above-mentioned example is a positive feedback loop.
Balancing (negative)
This type of loop is the opposite of accelerating. Balancing happens when a first group sees a positive increase resulting in a second group seeing a decreased value, which then negatively decreases the value of the first group. The system will eventually stabilize at a place where no more change can occur.
As each type of feedback loop embraces varying factors--less leading to less or more leading to more--the basic function remains the same. As the loop continues, each unit individually changes while affecting others.
Analysis and optimization of system and software delivery depend on your ability to properly set up feedback loops. Without them, your business and its structure will fail due to a lack of solved problems and information being rapidly shared.