Piotr Rochala, Solutions Engineer, Sportsbet, emphasises the importance of culture in trying to understand DevOps.
It seems the buzzword of the year is DevOps.
And everyone does DevOps. Like overnight, literally, everyone does DevOps.
We don’t hire Linux sysadmins anymore, that job title is so last year. Now we hire, wait for it – DevOps Engineers.
I scanned job adverts looking for DevOps Engineers in Australia on LinkedIn and I was surprised to see, less than 30% of ‘DevOps jobs’ even mention the word ‘culture’, often just referring to the corporate culture, rather than the DevOps itself.
I have been wondering why is that and the obvious answer is the term DevOps is simply misunderstood and more often used as a buzzword. The same thing happened to ‘agile’, where job boards were filled with ‘agile developers’ and ‘agile testers’ at the companies who ‘work in sprints’ so they must ‘do agile’. (probably a topic for another post!!)
Is DevOps about how fast you can deploy your code?
Hans is a Linux gun. He can take code emailed to him every month by a developer and deploy it in under 15 minutes to all 400 production servers, using his unversioned, 8000 lines long .bashrc file. Sometimes, he even jumps in and edits the application code himself if something is not just-the-way he likes it. The changes he makes directly in production has saved the company thousands, in building out an expensive continuous delivery platform. He’s the only one who knows how to do a production deployment, but as long as the new features can reach customers fast, nobody cares.
Hans is not DevOps.
Is DevOps about how often Development and Operations talk to each other?
Steve is a Dev. He talks to his mate Kev from Ops team on daily basis. Well, he has too. Yet again, Kev has accidentally pushed to production rather than staging, Steve’s broken code. This has impacted hundreds of customers. The guys often cooperate, working late hours together fixing yet another mistake that could have been avoided if the right quality and delivery process was in place. It doesn’t matter – the collaboration is flourishing, their managers are happy (collaboration, not quality, is part of their KPIs!)
Both Steve and Kev are not DevOps.
Is DevOps about how many features are delivered to the customers?
A development team has it all figured out. Developers can write code quickly by often cutting corners, compromising application architecture and code quality. They hand it over 2 days before the sprint end to their manual agile testers who often stay late to finish yet another round of regression. With a minimal level of automation and technical debt growing, teams are happy to hand over an artefact to the operations team. A loud sigh is heard as the sprint is over.
An operations team can quickly deploy the handed-over package. This involves few clicks of a button in the 80% automated process as well as few hours of manual adjustments of servers, load balancers and other well-established and documented manual interventions.
both dev team and operations got lucky. Again. Quality was there. Customers were not impacted. Business got what they wanted. The team got burned out. The constant lack of time for improvement means that next release cycle will be slower by 1%, but nobody is counting.
The Dev team and Ops are not DevOps.
DevOps is a culture
DevOps is not a role or a job title. It is not a set of skills or choice of particular technology.
DevOps is a culture. It is a culture where everyone, from Business Analysis, Development, Quality Assurance, Operations and Security (BADevQAOpsSec?!), works together towards a common goal (delivering the best outcome for the customers) and is measured by the same set of metrics.
DevOps is a culture of sharing the knowledge and mutual respect and understanding. Thriving DevOps is when dev understands the operational requirements of any piece of software and is also there support it. It is when operations understand the rapid need for change and when it utilises the best software development principles such as automation.
DevOps is all about creating an environment, which allows for continuous improvement of technology, processes, and people.
DevOps cannot be used as an excuse to hire for sysadmin-like skills or dev-like skills without considering candidate’s contribution to the DevOps culture.
I’ll leave you with this extract from the Wikipedia, which perfectly summarises what personal skills we should look out for in the people who can contribute to the culture of DevOps:
“DevOps is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software, can happen rapidly, frequently, and more reliably.”