Last month, my partners in crime – Carmen DeArdo from Nationwide, Lee Reid, my colleague from IBM and I wrote a 3-part series of blog posts on DevOps.com. We titled our posts the Simple Math, Calculus and Art of DevOps. I would venture to say these are must-reads for any organization adopting DevOps. We examined all three ascpects – the Cultural, Automation and Process improvement side of DevOps. One of the key underlying themes of the three posts was the need for Cultural change – things like trust, collaboration, communication, etc. I will elaborate more on these soon.
On a persona note, reading Carmen and Lee’s posts and writing my own gave me an opportunity to reflect on the conversations I have been having with executives of late, in organizations across the world, as I work with them to help their organizations adopt DevOps. Irrespective of the size or the organization, the industry, or the geography, these conversations keep going back over and over again to the need to address five areas I alluded to in my post:
- Reduce batch size
- Shift-left Operational engagement
- Continuous funding
- Create a ‘Product Management’ team
- Setting up a DevOps Center of Excellence (CoE)
These are areas that you as an organization will need to address in order to maximize the benefits of DevOps for you. These are not in the typical domain of process improvement and automation that one sees in the DevOps literature over and over again. The ‘Continuous-es’ we all talk about – Continuous Integration, Continuous Delivery, Continuous Testing, Continuous Feedback, etc, – are not enough to get full value of DevOps. These particular areas are specifically focused on the things organizations need to do on the ‘foundational’ side of how they operate to enable the fostering of a true organization-wide DevOps culture.
At the end of the day, even after all the process improvement and automation that can be introduced in an organization, the organization can only succeed at adopting the culture of DevOps if it is able to overcome the inherent Cultural Inertia. Organizations have inertia – an inherent resistance to change. Change is not easy, especially in large organizations where the cultural may have had years to develop and permeates across hundreds, if not thousands of practitioners. These practitioners, as individuals, may appreciate the value of adopting DevOps, but as a collective resist change and hence have inertia. Overcoming this inertia is key.
How is this inertia exhibited? ‘This is the way we do things here’; ‘Yes, but changing X is not in my control’; ‘You will need to talk to Y about that; WE cannot change how THEY work’… are just some examples of phrases and behaviors that are symptomatic of cultural inertia. Over years, organizations develop behaviors; teams and groups divide up actions and responsibilities along organizational lines; ‘checks and balances’ get established in the name of governance, which are not related to true governance at all; Processes exist but no one know why – they are ‘just there’; reports get produced that no one ever reads any more, but no one is willing to do away with; bad things happened the past and resulted in approval requirements to ensure they never happen again; and so on. All build up Inertia in an organization’s Culture.
Identifying inefficient Artifacts and Processes:
Overcoming Cultural Inertia requires a serious look at each and every artifact and process that may cause the organization to be become inefficient. The way to identify these and then develop a plan to address the inefficiency they cause, is by conducting a ‘Value Stream Mapping’ exercise. A Value Stream Mapping is a ‘Lean’ approach to examine artifacts and processes that different stakeholders in an organization work on to deliver a business capability. In the context of DevOps, this would be for a Delivery Pipeline. A Value Stream Mapping for DevOps hence is a mapping of the Delivery Pipeline to identify which processes may be inefficient, and which artifacts do not add value to the real deliverables of the delivery pipeline. For example, processes may include manual steps such as ticket creation that is a highly inefficient way to hand-off artifacts to another team. They may result in unnecessarily long wait-times as practitioners wait for approvals or actions from other practitioners may not even be on the same timeline. Artifacts may get created, which are not consumable by those who need the information in them. Artifacts may get created that add no value to the final deliverables, such as reports for executives outside of decision makers. Too much data is collected, that is never made available in the right form by decision makers (this actually happens more often than the reverse, that is too little data).
The goal is to identify these ‘bottlenecks’ in the delivery pipeline – inefficient processes, artifacts that can be removed /replaced, wait-times, unnecessary approvals, etc. Once these bottlenecks have been identified, then DevOps practices that can be adopted to help address each of them can be identified for adoption. In most cases there are multiple bottlenecks that get identified and will need to be prioritized before addressing to first address those that have the most return on investment and impact on efficiency, when addressed.
Addressing these bottlenecks require change beyond just traditional DevOps practices. Changes such as reducing batch size, or shifting left operational engagement, require more effort than adopting a tool to enable ‘Automated Delivery’. I would argue that DevOps capabilities like Continuous Delivery cannot be adopted effectively, and will certainly not deliver at its full potential value, unless adopted with mechanisms to address Cultural Inertia.
Do ‘Follow’ my blog and follow me on Twitter to get updates on this series and other upcoming posts.
- Understanding DevOps – Part 1: Defining DevOps
- Understanding DevOps – Part 2: Continuous Integration and Continuous Delivery
- Understanding DevOps – Part 3: The Battle of Dev vs Ops
- Understanding DevOps – Part 4: Continuous Testing and Continuous Monitoring
- Understanding DevOps – Part 5: Infrastructure as Code
- Understanding DevOps – Part 6: Continuous Deployment
- Understanding DevOps – The Video (6 minute Intro to DevOps)
- Adopting DevOps – Part I: Begin with the Why
- Adopting DevOps – Part II: The Need for Organizational Change
- Adopting DevOps – Part III: Aligning Dev and Ops Teams
- Adopting DevOps – Part IV: Adopting Continuous Deployment
- Adopting DevOps – Where to start? (Video blog)