Development Operations, or DevOps, is a work philosophy that is based on the thinking that «software isn’t done until it’s successfully delivered to a user and meets their expectations around availability, performance, and pace of change»(Mueller, 2010). A lot of people see it as a job title where the person with the job has the responsibility of building the infrastructure for development and make sure the software product is delivered in the right way. As the What is DevOps? blog post explains, it’s just more than that. DevOps role is perhaps misunderstood as «the guy who tell us to use docker and chef»; as I said in the beginning, it’s an entire work philosophy that picks the main ideas from Agile development and transforms them into a set of practices, tools and principles to deliver a product continuously.
In past years DevOps was not even a thing because no industry needed that, but that changed with the software demand explosion. Now software is not a product that is delivered once and that’s it, we consume software as a continuous service that needs maintenance, adjustments and changes on the run. Developers now need to add new features to a software that has already launched and ten thousand people are using at the same time. The goal of DevOps is to solve this problem with automation to make it easier and reduce error. This overall means that DevOps is about Infrastructure Automation, Continuous Delivery and Site Reliability Engineering as Mueller suggests.
Doing a little bit of research I found a REALLY good video about DevOps that focuses a little more on explaining what is the DevOps mindset and why it’s important to understand it. Andrew Clay Shafer is a DevOps evangelist that visited Guadalajara a week ago to talk about his passion, I didn’t have the chance to go to the conference but this video might be the equivalent:
«DevOps is optimizing human performance and experience operating software…with software… and humans» (Shafer, 2018)
One interesting idea that I picked from the video is that organizations and humans need to learn to improve and become more productive, and to learn we all must be able to make mistakes and change our behavior. DevOps is a culture of continuous improvement, where different persons with different backgrounds and knowledge gather together to reach the same goal, that is to get better.