We have found the following strategies useful for organizations adopting a Disciplined DevOps approach:
- Invest in your people. In our experience 80 to 90% of your overall effort will be in helping people to learn new skills and ways of thinking and to rethink if not abandon many of the “best practices” of yesteryear. This requires training, education, and coaching over a long period of time — most people will require many months, and sometimes years, to make the transition to this new mindset.
- Create a safe learning environment. Teams must be free to experiment, to try new strategies to discover what works for them in the situation that they face. Very often this will work out well, with a few stumbles along the way, but every so often the experiment will show that the strategy just isn’t right for this team. That should still be considered a successful experiment, learning what doesn’t work is just as valuable as learning what does, and the team should not be worried about recrimination for “failed” experiments.
- Look at the “whole system.” Disciplined DevOps is about more than just continuous delivery (although that is a great start) and in most enterprises it’s about more than just streamlining development and operations. With a Disciplined DevOps mindset we strive to improve flow through the entire ecosystem, including development, operations, support, enterprise architecture, data management, release management, and most importantly to the business itself.
- Improve locally, transform globally. Each team, including your solution delivery teams, your enterprise architecture team, your operations staff, and many others must strive to improve and streamline the way that they work. These local improvement efforts must be supported by a “global” transformation effort that focuses on improving DevOps across your entire ecosystem. Every team will affect other teams, motivating them to make improvements which in turn affects how they work with others. Your IT department is a complex adaptive system where people and teams learn and improve over time in a dynamic, evolutionary manner. If you just focus on local improvements your DevOps effort is likely to devolve into chaos. If you just focus on a company-wide, global transformation it is likely to get bogged down in bureaucracy. An “improve locally, transform globally” approach is a viable middle ground that benefits from these two extremes while avoiding the disadvantages.
- Have a communication plan (and work it). Adopting a Disciplined DevOps strategy within your organization typically requires a lot of (often small) changes. Although it may be clear to you why this is important it isn’t always clear to everyone else. People need to understand why you’re making these changes, what’s in it for them, what the overall change strategy is, how far along the plan you currently are, what changes are coming soon, and so on. You communication plan may include regular newsletters, posters overviewing key concepts, brown bag lunches where people share their experiences, electronic discussion forums, management presentations, and many more. The keys to success are to have a constant drum beat of information, to be as open and honest about what is actually occurring, to provide opportunities to everyone to learn, and to motivate everyone to share their learnings.
- Think long-term. Disciplined DevOps is a journey, not a destination. It takes time for people to adopt a new mindset, months and often years before it is truly ingrained in their way of thinking. This paradigm shift does not occur by management fiat, nor does it occur as the result of a day or two of training (although training is important), nor does it occur because you’ve invested in new tooling. Organizations that successfully make this paradigm shift do so by investing in their people, their process, and their tooling over the long term.