IBM Rational's Enterprise DevOps Transformational Journey
Over the last 10 years as an IBM executive, I have been leading large development organizations in the adoption of lean, agile and DevOps practices. These development organizations have spanned multiple geographies, technologies, cultural backgrounds and skill sets. Through these experiences, I have learned a lot. Mostly that these transformations are hard, take much longer than you want in a large organization, and that it is important to learn from others on similar journeys. In this spirit, I am sharing my journey. I enjoyed this recent article on DevOps.com (http://devops.com/features/enterprise-devops-real-stay/). It provides a valuable perspective on the dynamics of driving change in larger organizations. I will be elaborating on my experiences in undergoing this journey and the value gained along the way.
DevOps Best Practices Learned During our Journey
There are multiple aspects to implementing change in a large organization. Agile practices are mainstream in many organizations today. However, moving beyond agile to unleash the full potential of the organization by the use of DevOps practices requires the next level of collaboration, automation and change. Understanding the key blockers in the tools, process and culture, establishing metrics and approaches to deal with them and adopting tools, which address the pain points and make the new ways to work the 'easy way to get it done.' Today's global development organizations require the need for teams to adopt tools, which naturally support collaboration and enable transparency like never before. The extensive use of cloud capabilities and the need to quickly introduce mobile applications accentuate the value of having the right tools.
Here are the 5 best practices our teams have learned during our DevOps Journey:
Expand agile practices beyond development and test to include client, business stakeholders, and operations to breakdown silos and improve outcomes.
Shift Left with continuous testing using automation and virtualization to eliminate long back-end test cycles and increase quality.
Build a delivery pipeline leveraging tools-as-a-service that enables developers to commit code, test, and deploy to a production environment in minutes reducing the need for rework and maximizing productivity.
Experiment rapidly by delivering instrumented capabilities, which enable the team to make fact-based decisions and quickly evolve towards an optimal solution.
Create a culture of continuous improvement leveraging measures of effectiveness and efficiency to ensure you're getting better.
Because cultural change underlies these best practices, I am going to share my experiences on this topic first. In the future, I'll be sharing my experiences with the other best practices listed above.
Experiences with Evolving Organizational Culture
Culture is a hidden thread in an organization. It is based on values and behaviors that evolve from both management and employees. Many times you do not actually understand the culture of the organization until you embark upon a significant change. There will be those skeptics who will take a wait and see approach to determine if this is the passing fad of the month. Leaders will emerge. It is essential to establish an approach to understand these dynamics, know who is who so you can address the real inhibitors.
I've used a number of approaches to address the cultural dynamics.
Select the Right Leader: It is key to name a leader to facilitate the change. The leader has to be the right person, someone who is close enough to the effort to have credibility with the team, but not too close to actually make the change happen. Their role is to pull together the differing viewpoints to start to bring the team to a common set of objectives, inhibitors, process changes and decisions on where to start first.
Involve Stakeholders: Support for these changes has to come from the leadership, management and individual contributors across different development disciplines. There must be business stakeholders, architects, developers, testers, and operations involved and named leaders from these areas who are champions for change. Middle and executive management must get engaged and make this a priority, provide resources to support the needed improvements identified by the teams, and the managers must have accountability for the business outcomes which are driving the need for the change.
Measure Improvements and Outcomes: Along with establishing an approach for leadership and collaboration it is critical have a set of key metrics which incorporate both the needed efficiencies but also the business outcomes. These goals and measurements should set a high bar and hold people accountable but they should not cause disengagement. The goals should be based on business priorities - something that will have real business impact. For the IBM Rational organization, it was all about being faster to market with new capabilities while improving client adoption rates. We established business outcome metrics for time to market and innovation vs maintenance investments. We dug in to uncover inhibitors to achieving these business outcomes, improve quality and measured our progress of removing the inhibitors. We found key gaps in the time it took us to get from ideas in the marketplace to the backlog of the development team. We also found numbers of inefficiencies in the development process - long build times, lack of test automation, ill defined done criteria. All of which contributed to inefficiencies and created a silo'd culture, building boundaries where each role would complete their work and hands it off to the next. Through our transformation journey from 2008-2014, we have been able move much more quickly. We are now able to identify a market opportunity and get it on the groomed backlog of the development team in days not months, deliver our on premise CLM products in 3 months vs 12 months, and shift 20% more of our development resources to innovation related work spending less on tedious maintenance (keep the lights on) activities allowing us to deliver more value to our clients.
Build Momentum with Early Successes: Understanding these inefficiencies and measuring the improvements in each area builds momentum for change. This momentum in turn facilitates cultural change as the team rallies together focused on the next most important blockers to continued progress. Success drives more success, which is a strong theme for what efficiency metrics should convey - especially early on. They should help you gain momentum with quick wins. Tools are needed which enable you to facilitate the needed collaboration, enforce the process changes and surface the metrics needed to effectively manage the transformation (and the project). The measurements have to be focused on gaining a better understanding of whether the team is achieving the process changes and results, which are a strong gauge of real cultural change.
Communicate and Listen: As a leader it is important you understand the real dynamics of how the change is taking hold in the team. Spending time having 1-1 conversations and regular face to face interactions with the technical teams, management, and business leaders helped me to gauge the buy-in of the team, their perspective on the inhibitors, and, equally important, an opportunity for me to share my perspectives on priorities and progress. It is important for the team to understand they have responsibility for bringing forward ideas and evolve the aspects they do not support or are not working for them. I also made a point of doing these same sessions once per quarter so I could see the momentum. Getting the skeptics on board can be difficult but they can become your biggest change agents once they have experienced success themselves.
Supporting the Teams
As an executive, it is critical to support your teams and make yourself available to understand and remove obstacles. Operating as a whole team with clear business goals is necessary to bringing everyone together on the same path. My goal will be to dig deeper into the DevOps best practices providing insights into the culture, tools and process journey of the team future blog entries. We are a DevOps team using our own DevOps tools, process and best practice recommendations. You can also learn more directly from the Collaborative Lifecycle Management team on how it has transformed by using DevOps practices, visit us at https://jazz.net/products/devops/whats-happening#activity
I would love to hear from you, wherever you are on your own journey.
Vice President, IBM Rational DevOps Capabilities Development