In this article I will try to cover DevOps basics, DevOps phases, correlation of DevOps, Agile and Testing, maturity Assessment, maturity levels, Metrics, Benefits and What Next to DevOps..
Whenever someone ask me about DevOps first thing which comes into my mind is the image of an elephant. In that image everyone is holding different body parts of an elephant and explaining their understanding. Someone is telling elephant is like a tree, someone is telling it’s like a mouse and so on.
I also hear similar answers from professionals about DevOps.
Let’s take a holistic view of DevOps…
Referring to above image –
First block is Waterfall model – where Business, Development team, Testing team and Operation team have barriers.
Second block of the image is Agile – where Business, Development team and testing are together but still Operation team is separated.
Third block of the image is of DevOps – where there is no barrier among the teams. So we can infer DevOps is a culture where all teams work together without barriers. This practical model gives another real time two word definition of DevOps – which is – “Connected Automation” of all the phases of a project life cycle. Here main words are Connected Automation. Every phase in itself should have an automation and at the same time every phase should handshake with its previous and next phase. Observation shows a project more or less passes through the following phases –
- Code Quality
- Code Coverage
- Testing (includes all variety of testing)
- Artifactory(Binary repository)
- Incident Management
- Config Management
- Collaboration – connection among all of the above phases/activities`
- For full DevOps it’s required that every phase should be automated in itself and connected to previous and next phase and finally results has to displayed to the centralized dash board for leaders.
Relation between DevOps and Agile:
When we speak about DevOps generally Agile word pops up at the back of our mind and we always try to correlate Agile and DevOps. The relationship can be explained as follows – Agile is track on which DevOps executes.
Agile and DevOps Transformation:
It’s very much true that Agile and DevOps are different and not necessary to coexist together.
DevOps can be implemented without Agile but experience show business benefits will be less. That’s the reason Agile’s presence gives better benefits of DevOps implementation. So it’s always recommended to do Agile Transformation first then DevOps Transformation. Hence in one way we can say Agile is track on which DevOps executes/runs.
One thing generally missed during transformation is testing. It’s recommended to have 100% automation (ideally) in place – in sprint automation. Else it’s a show stopper to get full benefits of DevOps in-spite of Agile being in place. But while transformation Agile and Test Automation can go in parallel. So the transformation road map becomes as follows:
DevOps Maturity Levels:
When we do the transformation the first step is base lining where we stand now. So doing Maturity Assessment is the first step. After this we can achieve maturity step by step. There are different levels of maturity assessment…
Level 1 – First step is to on-board required tool.
Level 2 – Second step is to connect on-boarded tool with CI tool.
Level 3 and Level 4 are to connect the on-boarded tool to previous and next phase.
Level 5 – connecting respective tools’s result to centralized dashboard(collaboration tool).
Level 6 – Highest level of maturity is achieved when there is an automation from level 1 to level 5.
Other metrics to consider are Tool Impact Assessment, Implementation Assessment,
(If you need assistance to major maturity then please message/LinkedIn me)
What to measure generally depends upon what we are implementing. If I am implementing Deployment related tool then obviously time to market is one of the major metrics. If integration tool is being implemented then build failure rate, build time and build collaboration time are important.
I generally consider DevOps broadly covers 15 phases of a project life cycle, so metrics differ as per the implementation phase.
Today organizations are ‘not’ ready to shell out a single penny but ‘yes’ – if value is there then nothing stops them to fund millions. On this topic please refer my article ‘Value Driven Solution’.
Overall DevOps bring huge values to organizations some of them are: Reduced silos, Improved collaboration, Transparent communication, Reduced frustration at the time of deployment, more time to innovate (rather than fix/maintain), Employee satisfaction, Higher employee engagement, Increased Customer centricity, Improved customer satisfaction, Reduced number of incidents, Reduced defect slippage, Increased quality of deliverable, More stable environments, Shorten cycle time, Increased number of deployments, Faster time to market OR Increased deployment speed (per deployment), Improved resilience, Reduced Opex cost, Improved efficiency and effectiveness, Lean organization, Reduced hand-offs, Improved trust among the stakeholders, Shift left and Waste elimination.
These benefits varies which phase of project life cycle we bringing DevOps.
What Next To DevOps?
As we are evolving, industry is expecting more specific solutions and frameworks. As we proceed DevOps needs to be in the blood of Developers by default. And more specific frameworks like DataOps, MLOps, AIOps and BIOps etc are expected to get more popularity.