Combat waste with a DevOps feedback loop, triage and automation
Source – devopsagenda.techtarget.com
Gruver sat down with DevOps Agenda to explain enterprise inefficiencies and the value of a quick and effective DevOps feedback loop.
The basic definition of DevOps is the answer to a question: How do you release code on a more frequent basis while enabling all aspects of quality?
It should be a straightforward, easy process, and everybody would be doing it if there weren’t waste and inefficiencies in the system.
One thing I like about DevOps is that, when you increase release frequency, it forces you to fix inefficiencies that have existed in your organization for years. It forces you to understand and address the root causes of the problems. Whatever is blocking frequent releases, DevOps provides processes and tools to address those once and for all, making your organization more efficient.
The key to improving the efficiency of software development is understanding that there are three types of work that have different opportunities for improvement.
Quick and effective DevOps feedback loop
The first type of work regards the new and unique features devs are writing. This is the value they’re trying to add. The key to improving the efficiency of this work is feedback. Every developer thinks they’ve done a good job until they get feedback.
To improve efficiency, you need to ensure developers don’t waste time working on code that won’t integrate with other code or in the production environment. You also need to ensure developers don’t waste time working on code that doesn’t meet the business needs.
The smaller the batch, the easier to triage
The second type of work that happens in large organizations is triage. In large, tightly coupled systems, teams can spend almost more time and effort setting up, debugging and triaging these big integrated test environments than actually creating the new capabilities. The challenge is to eliminate the waste and inefficiency in that triage.
DevOps addresses this challenge by creating smaller batch sizes with fewer changes to triage.
Automate out human error
The last type of work is all the repetitive software tasks: your build, your deploy and your test processes. There are inefficiencies inherent here simply because doing something manually that can be automated is a waste of time and energy.
Additionally, when you do it manually, you can’t do it more frequently; you can’t go to the smaller batch sizes to improve triage; and you’ll get inconsistencies through human errors. For these repetitive tasks, you can use manufacturing models, and you can look to automate, fine-tune and optimize over time.