DevOps Methodologies have become a must to sustain or build any competitive advantage our enterprise can have in this decade. Consider this: The new speed limit for any Software based production rollout is around 200 miles per hour. If you are still driving at 60 miles per hour, what is bound to happen? You know the rest. So is the power of DevOps Implementation. It puts developers in command, business owners in experiment mode, minimalizes your risk while increasing your corporate productivity, quality and speed of innovation. In this blog, I will cover the minimal DevOps elements required for our enterprises to embrace for sustaining the competition.
Organization Culture – Often neglected or reduced to the sides, this is one of the most important piece which will bring the highest productivity in the enterprises. We are talking about an impact of 30x higher code deployment frequencies, 10x faster MTTR, multiple of 1000x for code deployment lead times! These cannot be achieved without having a mind shift in the organization’s culture, from top to bottom. We are talking about the culture of innovation, automation, experimentation roll outs, fail fast, agile to name a few characteristics. The good news is (if you are starting) that we don’t have to achieve this as a big bang but can start with couple of apps and start making DevOps as the new de facto ways of running the business of IT. DevOps will enable you to answer many of these questions and that is why we are calling it a minimal survival kit for today’s enterprises:
Is speed of innovation bothering you?
Are you worried about getting out-experimented by your competition?
Are you getting direct feedback from the customers all the way to the developers (in other words, have you successfully implemented the feedback loop and moved closer to the customer?)
Are you program velocities/product rollout times of any concern?
Are your release cycles still large releases monthly (or quarterly!) with minor releases weekly (or monthly!)?
Is automation something on top of your mind?
Are you considering Shift ‘things’ Left strategy?
Selection and Measurement – Selection is very critical if you are in the beginning phases of DevOps implementation. As with many other programs, starting with something which has substantial business impact but is small and achievable is key. It is important to get the attention of the business to bring all the stake holders together in this journey. I have listed below few of the DevOps known goals. Select just a few of these goals to get started, which can be achieved and have a strong plan of measuring the goals.
Faster time to market
Higher project/program velocity
Higher Quality Software Output
Improve Innovation and Experimentation by lowering risks
Reduced or 0 downtime
Have a clear measurement in mind before and after: release frequency, change failure rate, recovering time from failures….etc.
Shared responsibility model – We will be forming a team of developers, operational resources and testers who can code, will be using either cloud infra like Azure, GCP, AWS or spawning VM’s-as-a-service internally, have an info sec personnel within the team. This is one team which thrives on collaboration in DevOps vs. the silos of every team coming on a call together for the purpose of dev handing over to operations. In DevOps model, the pains and success both are shared across the team. We are trying to implement high cooperation here with failures leading into inquiry vs. failure leading into scapegoating/justifications.
Lean Agile is back – DevOps complements the Agile methodology in the best possible ways and perhaps is here to remove the so called Agile excuses for failures which we heard in the last decade. Agile/SAFe/Kanban preaches continuous flow to enhance our speeds. DevOps coaches CI/CD to have continuous movement to production and back as required. The Lean Agile principles of reducing the batch sizes of work items, managing queue lengths are very well complemented by DevOps principles and tools as well. The Trello board, Jira are cross functional tools which aid in implementing both Agile and DevOps processes with a common goal to enhance productivity, increase visibility, governance across the teams.
Automation & Tooling – DevOps breathes with Automation and the possibilities are endless. Right from Infra-as-a-Code, Release Automation, QA Automation, Automated Reporting, Integrated Builds, Static Code Analysis, Automated Governance, MicroServices, Containers there is a place for each of these and there are several open source and enterprise editions of various tools bursting in the market for their spots. Your developers will love to play with many of these tools, some of which provides overlapped functionality with their own forte in specific areas.
To achieve the highest velocity for your own organization, each of the above pillars of DevOps needs to be embraced (and not just automation/tooling) and instilled in the enterprise’s DNA, not only to succeed but even to survive!