In my previous posts, we have discussed the fundamentals of DevOps and how to overcome the challenges associated with software delivery. We have also explored the intrinsic benefits that organizations can expect in the long run. As most organizations have now embraced the importance of DevOps, it’s important to take a closer look at what goes into doing DevOps right and ensuring an optimized experience.
Here is a list of 10 things that you should focus on to do DevOps right:
• DevOps Subject Matter Expert – A vast majority believes that DevOps is easily doable and does not require specialized expertise. However, this couldn’t be further from the truth as it is essential to leverage the capabilities of specialized experts. Identifying or bringing in a DevOps expert is the first & foremost step and ideally the person should be able to own, drive, strategize, design & implement DevOps end-to-end.
Bringing in the right SME is key to successfully embracing & implementing DevOps in an organization that might have the aptitude but not necessarily the expertise. It’s imperative that with a lot of organizations taking their first steps towards DevOps, this SME should be able to wear multiple hats as needed and shape-shift into anything from an incubator to an accelerator.
• Evangelize DevOps – Every organization looking to succeed with DevOps, needs an executive champion who can evangelize DevOps across the organization. However, to use this influence and turn it into an actionable plan requires organizing dedicated workshops, impromptu knowledge sharing sessions and conducting focused seminars to make employees understand what DevOps is and the reason the organization is embracing this path.
• DevOps Strategy – As with most other transformative endeavors, strategy is the critical piece to ensure you are on the path to success with DevOps. Not surprisingly, this doesn’t come easy as you will have to go through multiple iterations of your strategy as you cajole a number of disparate groups towards a common vision. A lot of times, the outcome of such discussions will lead you to “willingly” change the way you have worked before.
Most of these discussions are rooted in inertia and carry with them a strong resistance to change as each siloed team believes they have been doing things right and don’t need any course correction. Once the spade work has been put in to overcome this mentality, the same people are usually super excited and willing to make the changes while taking on additional responsibility. This is where the cultural setup of an organization plays a huge role as some companies are more amenable to learning and adapting to a new reality while others are dogmatic at their very core and are likely to remain rigid even to their own detriment.
However, this is where a seasoned consultant can step in and ease a smooth transition by conducting a thorough requirements gathering, enabling a deep dive analysis, defining a roadmap and the goals an organization is looking to achieve within a particular timeframe.
• Clearly defined KRAs – It is critical to have the right KRAs in place to measure the success of your DevOps implementation. While every organization would do well to have their own KRAs depending upon their unique circumstances, there is something to be said about borrowing from a commonality that exists amongst in the experience of those embracing DevOps for the very first time. According to a recent Puppet survey, that included more than 4,000 respondents, the most important measures of DevOps improvement were:
•Deployment frequency •Speed of deployment •Deployment success rate •Turnaround time for restoring a service after a failed deployment •Culture, which actually can’t be measured.
• DevOps Team – There are different notions about the “DevOps” team and it varies significantly based on who you are talking to. In some cases, you don’t need a DevOps team at all as your development team will do everything end-to-end. In some other cases, members from dev, QA and ops would have to ramp up and carry the load. While for others, hiring specialized DevOps engineers is crucial to get their journey started.
While there are pros and cons associated with each approach, there is a reason why it is not recommended that development team be exclusively responsible for DevOps. What I have seen work in helping clients successfully embrace DevOps is setting up a seed DevOps team that has skills in multiple areas, have specialized knowledge of various processes and tools while being comfortable with the notion of enabling automation as needed. Based on your own talent pool you can decide to fill this team with internal resources or bring in external consultants.
• Pilot Project – As much as we would love a big bang, success with DevOps is all about starting small and making incremental gains. Hence it is important to pick a pilot project, which is primed to succeed with DevOps and allows you to measure the changes that are being achieved. There needs to be a fine balance in choosing the right kind of pilot project as it shouldn’t be too small nor too big. You should choose a pilot project that can assure sufficient visibility with a team that is willing to accept change and be the pioneer for DevOps implementations across the organization.
• Unifying Processes, Tools & Technologies – It isn’t uncommon to see certain groups in an organization being tied to a particular tool set, often resulting in a conflict of opinion with other teams. Gaining consensus about the most optimally structured processes and mapping them to the right technologies is also a source of anguish. This can especially turn into a source of anguish in the case of medium to large scale organizations and hence the right kind of due diligence must be carried out in order to avoid a sticky situation.
• Automate, Automate, Automate – A large part of the success of any DevOps project depends on the degree of automation it is able to achieve. Automation is the seed team’s hardcore responsibility, stitching all the processes and tools together to create the complete workflow.
• End-To-End Implementation – While the importance of choosing the right kind of pilot project cannot be overemphasized, it is also important to follow through and ensure an end-to-end implementation. The objective should be to showcase tangible benefits from embracing DevOps rather than measuring against all your KRAs right from the get go.
• Extend your learning across all projects – Once all the lessons associated with taking the plunge into DevOps have been learnt from the first pilot project, it is important to scale up and implement the same learnings in a phased manner across all the important areas of your organization. This is also the right time to decide if you would like to continue engaging with an external consultant or bring it in-house by having your internal resources take over the baton and progress along the DevOps path.
Ultimately the journey to DevOps success is a collaborative one and is filled with new learnings at every curve. When I started writing these blogs, I didn’t foresee it turning into a series but I intend to share my experiences and provide anecdotes that will help you in embracing DevOps successfully.
If you are thinking about DevOps or are about take your first few steps and need a helping hand, feel free to reach out to me at [email protected]
Karthiga has 14 years of rich experience in IT with expertise in DevOps, Engineering Services, Build and Release Management. She currently leads DevOps Practice in Happiest Minds. Karthi has great passion for automation and implementing Devops end-to-end. She has a Masters degree in Business Administration and holds a Bachelors degree in Electronics & Communication Engineering.