We’re continuing Michael Hüttermann’s guest blog series on DevOps and its ability to streamline software development and delivery. Part Four covers DevOps misunderstandings.
Some DevOps misunderstandings
There are some common misunderstandings about DevOps. Some people think DevOps strives for new organizational units or teams (“another silo will solve it”). That’s not true. As the name DevOps already suggests, it’s all about improving the “how”, that is how devs and ops work together with each other, on a daily base. Others claim with DevOps all parties are collectively responsible for the outcome. That’s not true either. Although shared incentives are important, clear responsibilities are still important too. Thus sharpening the process, the roles and responsibilities is crucial. With other words, traditional IT governance remains important. IT governance includes defining roles and responsibilities, measuring and reporting, and taking actions to resolve identified issues.
Another misunderstanding is that DevOps and Continuous Delivery are very tightly coupled. Whereas DevOps deals with the collaboration of development and operations, Continuous Delivery discusses the concept of bringing changes to production continuously and with minimized lead time, and being able to do so frequently. Continuous Delivery spans the software lifecycle and is based on Continuous Integration (that is frequently checking in changes to version control, multiple times a day, with the constraint that developers can check out current states of the software at any time, without having any build errors locally afterwards), Continuous Deployment (that is the frequent deployment of changes to target environments) and Continuous Inspection (that is the inspect&adapt pattern, to keep up the internal and external quality of the software). Continuous Delivery is not necessarily part of a DevOps initiative, whereas if you implement Continuous Delivery, you’ll most probably have to implement some sort of DevOps too.
Configuration management should be the basis for all professional software projects. There are many ways to implement configuration management, gluing together lightweight tools is the Agile way to do so, what we’ll discover next.