If your team is currently applying DevOps practices, there is a high degree of likelihood that you are encountering issues that you did not anticipate. Implementing DevOps is no simple task, as you may have experienced already. Based on my experience with Agile and DevOps implementations, this type of change can be highly frustrating and stressful, but also extremely rewarding if you can achieve a few quick wins. In this short article, I will share a 5 DevOps implementation tips that may help you in this journey.
Tip #1 – Be clear and confident about your goals
Many teams that I have worked with in the past struggle to get started because they lack vision and direction. They see “DevOps” as a buzzword and they rush towards it because they think they must do it without first understanding the benefits and the desired outcomes. Without a clear vision, it is very risky to expend energy and resources that will likely lead to poor return on investment in terms of lost time and productivity. This is why you need to have a clear objective in mind as early as possible. Within the DevOps domain, there are two popular goals that may make sense: software delivery operation (SDO) and productivity. While one can argue that you need both, and that you cannot do one without the other, my opinion is that it is possible (and advisable) to prioritize one over the other; depending on your organizational domain, one may make more sense than the other. Consult your stakeholders as needed to ensure alignment of this goal, because it will drive everything that you do.
Tip #2 – Define your metrics early
How will you know if things are improving once you invest all this time and money into your DevOps initiative? As someone famous once said, “You can’t improve what you don’t measure”, which means you need to have an understanding of where you are today, and then be able to measure that same process after improving the process in order to fully understand the impact of the change. Some common metrics include Lead Time, Cycle Time, Mean Time To Repair, etc. Take the perspective of your customer/users when defining your key metrics; ask yourself: “What do the customers care most about? What makes them mad or glad?” The answers will help you hone into the things that will truly matter and worth measuring and improving.
Tip #3 – Plan your implementation carefully, but be ready to adapt the plan
DevOps initiatives can seem very exciting and you are likely very eager to jump in with both feet. To achieve success, it is usually a good idea to plan the rollout incrementally and build on successes in an iterative manner. This will allow your team to adapt and mature over time. There are many techniques you may consider to deploy this type of change. Studies have shown that “big bang” approaches don’t work well, and a combination of Communities of Practice and proof-of-concept projects seems to have higher levels of success. Explore a few options that may make sense for your organizational context and culture.
Tip #4 – Be ready to invest in tools
A successful DevOps initiative will likely involve at least one, and more than likely several tools to maximize consistency, predictability, and efficiency of your operation. Many organizations get stuck using the tools that they are comfortable with and do not expand their horizons to explore newer/more modern tools that could provide a tremendous boost to existing processes. Researching and implementing tools can be a daunting task, so be prepared to invest time and possibly some funding to acquire technical experts who can support this effort. Also, it is advisable to keep an open mind about the types of tools to apply; a mixture of open-source, proprietary and COTS (Commercial Off The Shelf) tools has shown positive results for many organizations in the market today.
Tip #5 – Automate everything… where possible
For your DevOps implementation to be successful, you will want to take advantage of the power of modern tools that can execute processes automatically and consistently with minimal human intervention. Who doesn’t want automation? Having things run with high rate of success is something we all appreciate, but automation does not come for free; you must invest time and effort to establish the appropriate infrastructure that enables automation to execute in a predictable fashion. You may be tempted to tackle all of it at once, but that is not always necessary. You can consider a multitude of processes to automate, such as software builds, deployments, installations, unit tests, security tests, etc. One option is to start small – choose one process that has been performed manually but is well-known by your team, automate it, and learn the associated toolchain that is required to make it work consistently. Once you achieve that level of success, you can grow from there.
For information on DevOps training options, see below for course offerings provided by Cprime Learning.
Fundamentals of DevOps eLearning
DevOps Foundation Certification Workshop
DevOps Implementation Boot Camp