7 Steps to Kick-Start DevOps in Your Enterprise
In today’s age of cloud computing, mobility and big data, enterprise IT organizations face more pressure than ever before to quickly deliver and maintain secure, high quality software and services to their end-user communities. DevOps promises to take Agile development to the next step and drive efficiency across the entire delivery pipeline by integrating parts of the development and operations teams. While there are a lot of forces driving IT leaders to adopt DevOps, the transformation is not simply a technology adoption or implementation of best practices. As an evolving methodology DevOps best practices are not as firmly established as more mature development methodologies like waterfall or Agile. However, while DevOps is maturing, many early adopter IT organizations are realizing considerable improvements in both delivery performance and software quality, as well as end-user customer experience. As with any emerging methodology, the road to such success is not easy and there are many roadblocks to enterprise adoption.
Here are some key steps that will help kick-start DevOps in your enterprise.
Understand and Define DevOps for Your Enterprise
DevOps is an organic set of principles with many variations and definitions. It is not governed by a standards or governance body. So, it is important that you clearly define and document the DevOps principles you want to follow or choose one of the existing variants for your enterprise.
Get Executive Sponsorship and Pick the Right Champions
Unlike a startup where teams are small and more agile, driving a new methodology in a traditional enterprise, since it involves many organizations and leaders, is not an easy process. It is critical to get executive sponsorship and have the executive drive the change throughout the engineering team. While the migration to DevOps can be driven by influential individual contributors, the executive driven top-down approach is best. Without executive buy-in, the success rate for this level of technical and cultural change is very low. In addition to having executive champion, it is equally critical to have the engineering and IT teams in alignment. The team should include cross-functional champions from at least a few key enterprise organizations like Marketing, Sales, Product Management, Architecture, Engineering, Development and Operations.
Identify the “DevOps Kick-Start” Application
Start small with an application that is designed for rapid change and also has a high tolerance for risk. Choosing an application that is both tightly coupled and mission-critical is not a good option at this stage. Good candidates for a DevOps test drive include applications that have measurable objectives or potential to define objectives like availabiliy SLAs, request/response SLAs, features to bugs ratio, fault tolerance ratio, resiliency maturity, and most importantly platform maturity index. Choose a realistic duration for this project (e.g. 8 weeks) that showcases the speed-to-market that DevOps can provide, but also is achievable, and be sure to involve all the stakeholders for feedback throughout the process.
Pick the Right Tool Chain for the Application
While it is tempting to pick the technology tool chain in the planning stage, each application is unique and it’s better to finalize the tool chain once you’ve poked around inside and have a better understanding of the application you’ve selected for the project. You can use tools already available or adapt a plug-n-play solution that has the capability for customization as processes evolve.
Define and Measure Metrics for Success
There’s an old saying that, “things that aren’t measured don’t change.” It is important to define metrics for success, i.e. SLAs and KPIs, to measure them. For example: Application responsiveness, ability to self-heal, number of transactions to handle. Also, SLAs for: request/response rate, total bandwidth usage, idempotency nature, functional test cases, code coverage, resiliency rate, and how many improvements have been made to platform etc.
Implement Iteratively and Show Progress
One of the core principles of DevOps is iterative development. With a tool chain in place and the metrics defined and ready to measure, it’s best to develop the application features in an iterative manner. The most important goal of adopting DevOps is to improve the objectives defined and continue to stay within the defined set of acceptable parameters. All these parameters are measured continuously through automatic report generation and published using Scorecard. With Continuous Integration, delivery and collaboration tools integrated, you can also achieve faster release cycles, and eventually reach a level of operational excellence where releases to production happen automatically after automated unit testing, functional testing, integration testing and E2E testing when a piece of new code gets checked.
Evangelize and Scale
With these steps in place, it is highly probable that the metrics will indicate that the team is able to realize the benefits of DevOps. The next step is to evangelize these principles via the champion stakeholders and scale up application adoption, as well as the adoption of DevOps principles. It is also important to note that this is a learning process and just a start of the DevOps journey. More success will follow.