DevOps Culture: An Important Building Block
More than once, actor Tom Cruise has felt “the need for speed.” In films like “Top Gun” in which the phrase appeared, and also “Days of Thunder” in which he played a race car driver, the most important priority was to get a vehicle to move really fast, preferably faster than any other of its kind. There’s a stark parallel between this and perhaps the strongest perceived need in business today – that same need for speed.
Every business seeks to stay ahead of its competition by making everything happen faster and hopefully better. Products go to market faster. Messaging about those products comes even faster. Everything everybody does must be done faster, so everything that impacts each and every step in the process must move faster. Since most things are now run by software, software must move faster. For that to happen, the software itself must be developed, deployed, produced, and continuously improved faster than ever before. This has led organizations to consider adopting a DevOps culture in order to achieve these awesome benefits.
A DevOps Culture Requires Change
The similarities extend beyond the need to go faster. Making any vehicle move faster is a “sum-of-the-parts” activity. The body of the vehicle is created to be more aerodynamic. The engine is outfitted with better parts that fire the pistons with more force. The drivetrain is improved to transfer the engine power to the wheels more efficiently. Those wheels are covered with superior tires that grab the road better, and the driver behind the wheel gets more and more training. Finally, the pit crew practices over and over again until they can execute a pit stop in record time. Everything and everyone contributes.
Creating a DevOps culture change can be described in a similar way. Not only does each part contribute to the goal, but through on-board computers they communicate with each other to find out just how each part should act in order to maximize power and torque. Just as everything in an automobile needs to communicate to achieve maximum efficiency, DevOps encompasses culture and collaboration to reach peak performance.
Based on the name, it’s easy to assume that DevOps only occurs within the team of developers who create the software and the operations group who run the software for users. But this is not the case─the change required is cultural, and cultural change is pervasive across any organization. Everyone is impacted by it. Everyone experiences changes in paradigm, attitude, and approach.
DevOps Culture Challenges
In a 2017 McKinsey article, the writers recommend that those working to implement DevOps, “Push change from the top. Start it from the bottom.” As with all cultural change, nothing will happen quickly or suddenly. Culture is not easily changed. It is influenced, it is encouraged, and given credible evidence, and only then it slowly shifts.
And while it might take some time to fully integrate the needed cultural changes throughout every department to reap all of the benefits of a DevOps culture and mindset, each step of the transition process brings with more and more benefits. In a DevOps culture, every process needs to be continually evaluated to see if it can be accelerated or if there is a better way of accomplishing the same task.
Acceleration of software development processes is accomplished by innovating and improving every component of the value chain. Large monolithic blocks of code that take months to develop, code, and implement give way to microservices in containers that are loosely coupled and much finer grained. These reductions make them faster to develop, code, deliver, and deploy. Even users are encouraged to perform faster, specifically when it comes to providing feedback for further improvement. By empowering every member of the team to make suggestions for improvements and knowing that those suggestions will be heard, considered, and acted upon creates a system where the end result is far superior to a traditional top-down office atmosphere.
Any process that will benefit from automation is quickly automated since automation performs far faster than any human. Not only does automation outpace a human at performing the same activities, the manpower that would have been spent on those tasks is now freed up to accomplish more meaningful work that benefits the company and improves the value of each employee. One of the acceptance criteria for every tool incorporated into a DevOps environment is the speed of performance. Faster technology is incorporated at every level from servers and storage to code and compilers. Extra and unnecessary steps in the process are evaluated and eliminated.
A DevOps Culture Is Built on Trust
Approvals are the enemy. Approvals take time. Decision-makers who are removed from the product development process may not feel the urgency in approving things and moving the process along quickly and efficiently. In a DevOps culture, decision-making is delegated down as far as possible. There are also as many people as possible who are able to make a required decision and take productive action. Checklists, inspections, and audits all introduce far more latency and destroy the value of any DevOps initiative.
Removing as many barriers as possible will go a long way in establishing a successful DevOps culture.
In a DevOps culture, teams become far more autonomous, more enabled, and more empowered, which enables them to make decisions and create needed changes without waiting for someone else to go through seemingly endless deliberations. A DevOps environment fosters innovation by allowing the individuals that identify the problems to press forward with solutions instead of awaiting approval from individuals who are removed from the process.
At the same time, they also become more interdependent as they share responsibility for processes that cross from one to another. The crucial role of feedback in driving the next iteration of improvement only serves to further illuminate the importance of the high level of communication and collaboration that DevOps organizations must foster.
The growth-oriented mindset present in a DevOps culture tends to toss out the old rules. It’s okay to fail, as long as you fail quickly, learn, and recover quickly. The ultimate goal is getting quality working software delivered quickly and often. Any rule that delays this goal must be ignored or changed.
Another manifestation of trust is the elimination of blame. It really is unimportant who may have caused a particular failure or anomaly. In a successful DevOps culture, finger pointing simply goes away, replaced with a united desire to rectify anything that may have gone wrong quickly, and without rancor.
The only important thing is to rectify the situation and provide quality working software as quickly and as often as possible.
A DevOps Culture Means More Collaboration than Control
It was in the aforementioned “Days of Thunder” that Nicole Kidman turned on Tom Cruise and declared that “control is an illusion, you infantile egomaniac!”
In a DevOps culture, “control” must be distributed. Teams become self-driven and self-managing. Improvement is controlled through testing with the desire to improve a pervasive element of everyone’s approach to their mission. Perfection is happily sacrificed on the altar of good working software that will quickly be further improved. The outcomes are what matters and what are consistently rewarded, not adherence to process or compliance with requirements.
Control over constant improvement is exercised through user feedback.
Indeed, in an interdependent, cross-functional culture like DevOps, there’s seldom certainty as to who is in control. Because everything is so interconnected and everyone is responsible for ensuring the release of quality working software, it is in everyone’s own self-interests to ensure that they are producing the best possible products. DevOps embraces a culture of collaboration in order to be fruitful.
It becomes attractive to cede as much control as possible to automated systems to eliminate any possible conflict and to speed up processes. But automated tools, and automation in general, are not the sum total of DevOps.
Automate What Can Be Automated. Share Everything.
“Even with the best tools, DevOps is just another buzzword if you don’t have the right culture,” writes Martin Fowler, self-proclaimed author, speaker, and loud-mouth on the design of enterprise software. “An attitude of shared responsibility is an aspect of DevOps culture that encourages closer collaboration. It’s easy for a development team to become disinterested in the operation and maintenance of a system if it is handed over to another team to look after. If a development team shares the responsibility of looking after a system over the course of its lifetime, they are able to share the operations staff’s pain and so identify ways to simplify deployment and maintenance by automating deployments and improving logging.”
Embedding a team member into a part of every aspect of development, maintenance and integration of programs will ensure that each section is working towards the same goal. This removes the desire to simply push the project onto the next group, regardless of whether or not the project could be improved in order to speed up overall development.
Continuous Improvement Is the Product of Culture
DevOps is a marathon, not a sprint. It requires stamina and determination to remain focused on the ultimate goal of constant and continuous improvement. “True DevOps unites teams to support continuous integration and continuous delivery (CI/CD) pipelines through optimized processes and automation,” says Waleed Bekheet, VP of Practice Solutions at global technology consulting company Onica. “A CI/CD approach enables efficiency in the building and deployment of applications, and automated application deployment allows for rapid release with minimal downtime.”
It may seem like a panacea, and the cynics among you may call it unrealistic, pie-in-the-sky, fluffy, or some other term that is derisive of new age thinking, but achieving continuous improvement is not that. It is the product of a culture created by the desire to do everything necessary to move from idea to implementation to increase success faster than ever before.
Additionally, continuous improvement is necessary in order to keep any company, in any industry at the top of its field–DevOps is a great way to ensure that they get there.
[adinserter name=”DevOps-Closing”]
Stay in Touch
Keep your competitive edge – subscribe to our newsletter for updates on emerging software engineering, data and AI, and cloud technology trends.