Why DevOps at scale is your real transformation catalyst
A common question that is brought up when starting DevOps training, bootcamps, conferences and more is "what is your definition of DevOps"…and you invariably get a myriad of different answers.
Because DevOps is often immediately related to moving faster and thus saving costs…organizations and people often think that simply means showing executives a magical tool or pipeline and that will solve all of their problems...Here's the rub. DevOps is a mindset not a technology. While DevOps has been around for at least a decade now - culture is STILL the #1 challenge. Organizations still rely on implementing tech without the consideration of people, behaviours and culture to shift the way people work. People need to be motivated and understand what the practices of DevOps means to them before jumping on the bus to a new way of working.
If you recall, DevOps practices are founded on "three ways":
1. Flow. (System thinking)
2. Amplify Feedback Loops.
3. Culture of Continuous Experimentation and Learning
Flow is all about the movement from Dev through to Ops. Really it's starts with the business...however DevOps covers life in the fastlane (or perhaps slow lane) between Development and Operations. How well does work flow from one through to the other....e.g when I release a new feature - what is my speed, predictability, velocity and mechanics to release that new feature. You want to accelerate flow as it will drive business value.
System thinking comes from William Deming and has everything to do with taking a holistic perspective to the design of your systems…everything from physical locations, people, tech and process that are involved in that system. e.g. - does a performance enhancement in development impact operations? If so, how? Does this new process that makes life awesome for environment provisioning or completely disrupt the rest of the delivery practices? Perhaps you just deprecated an API in favour of a reengineered service…what was the impact…and not only what is the impact today but tomorrow, 6 months or a year from now. Today's solution could have a ripple effect and be tomorrow's problems for your colleagues…so are you thinking past what is immediately in front of you? By thinking from a system perspective allows you to prevent unnecessary catastrophes. You can avoid sending bugs and defects downstream by understanding the implications of your actions to the rest of the team and organization. System thinking = better flow.
Feedback Loops…how are you communicating today as a team? Feedback loops come in all sorts of delivery channels and are fundamental to your success as an organization - both for delivery of capabilities and for DevOps Practices and cultural adoption.
Examples can include - do you invite Ops teams into your development sprint planning or PO Meetings? Or have Ops and Release Engineers into the Retro reviews? Are developers taking part in production triage or troubleshooting production outages? Perhaps some developers go oncall w/ Operations to get an appreciation and understanding of the work happening in Ops. Perhaps those individuals, developers or operations personnel, are contributing back to the mechanics of working…the interaction models and processes. The whole point of feedback loops is foster open and transparent communication amongst groups to make work better for everyone. By collaborating effectively with your team, you can easily talk about ideas, issues, projects and best practices. You can experiment, fail fast and grow! This also helps drive peer-to-peer learning and coaching…you're learning from your colleagues and vice-versa…in ways that make sense in the day/day lives at the office.
Other Feedback loops may include digital conversations through chat, forums, etc…perhaps through a Community of Practice and seeking knowledge through the DevOps Centre of Excellence. Perhaps you need more transparency from the business to operations and this is accomplished by a giant kanban board written out w/ sticky notes. What's important about feedback loops is that they are actively used and engaging with people; providing constructive and stimulating conversations. They also provide great ways to tell stories - which could be of successes and failures. You will always learn and grow the most through failure…so embrace that in your work!
Culture of Continuous Experimentation and Learning. Developing a Learning Culture provides organizations with a significant advantage because they are always growing and adapting to the needs of the customers, their colleagues and themselves!
Learning Cultures provides a safe and open space for people to experiment…to try things! And if they fail then learn from the failure. What was problem to be solved, the hypothesized outcomes and how can you measure it…maybe you can't measure it initially! You will always learn the most when you fail….failure is a good thing. The key to failure is show what you learned from the failure and how you are going to apply the new knowledge gained from it. Iterate, adapt and try again. Like the scientific method. You prepare as much as possible, hypothesize, experiment, test and reflect.
Fostering a culture of learning has some core principles (noted from Peter Senge's book on Learning Organization):
o System thinking (yes the same one from above…you can see how much these two are linked)
o Personal mastery (learning and discipline is a two-way street. You have to seek mastery to help yourself and the organization grow)
o Shared vision. When everyone understands and shares the same vision it creates a level of trust, transparency and cohesion. Everything flows much better when the vision is clear and embodied by everyone.
o Mental Models. Everyone has mental models where you think you know or it not. They are "conceptual frameworks consisting of generalizations and assumptions from which we understand the world and take action in it. We may not even know that these mental models exist or are affecting us." These mental models can be helpful in problem solving and learning…they can also be to your detriment as a lifelong learner…as mental models can also lead to biased, preconceived judgements and other less than ideal assumptions. The key here is to understand yourself. How do you think? How you problem solve? What is your self-awareness that can help or hinder the team, the org or you personally. Figure that out and then use it your advantage.
o Team-based learning - it pays little dividends to keep knowledge and wisdom to yourself. Team-based learning through social experiences, community and collaborative learning is proven to be highly advantageous to everyone involved. You come to understand different perspectives and views, ways to learn and problem solve, how to connect and relate with others, how you can help others. There is a tremendous amount of personal happiness and gratification that comes from helping others. So do yourself a favour and help the team, the organization and anyone you know learn and grow!
So don't forget DevOps has three key ways that should surround EVERYTHING you do when practicing it.
2. Feedback Loops. (Transparent Communication!)
3. Experimentation. Learning. Culture. Embrace and GROW
Please your comments below. I always appreciate feedback on my articles.
Thanks for reading.