šŸ”DevOps ā€” Most donā€™t get it, very few implement it!

Reeshabh Choudhary
4 min readDec 4, 2023

--

šŸ‘·ā€ā™‚ļø Software Architecture Series ā€” Part 7.

DevOps

šŸ¤We often see enterprises hiring for the role of DevOps engineer or similar roles, and we get an idea that the company is hiring someone to manage their infrastructure for continuous integration and deployment (CI/CD). A perception is created that software development in the particular enterprise is being governed by DevOps. However, most of the times this is not the case. In fact, I have come across many developers and architects who donā€™t even get the essence of what DevOps is, and how to benefit from it. To understand DevOps, let us take a step back to its origins.

āš™DevOps ā€” Development + Operations, is a culmination of different philosophical and management movements inspired from industrial manufacturing and applied to IT values, to gain world class quality, reliability, stability, and security at minimal cost and effort and inspire accelerated flow of Software Development Lifecycle.

DevOps is not one personā€™s job, but it is the convergence of entire organization (people coming together) to accelerate delivery through automation, collaboration, fast feedback, and iterative improvement.

Hence, be it a software developer, tester/QA, architect, manager, CEO, etc. anyone involved in software development or delivery or requirement gathering or planning, falls under DevOps team.

šŸ•DevOps is hugely inspired from Agile movement, where key principle was to ā€œdeliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.ā€ Inspired from ā€œ10 Deploys per Day: Dev and Ops Cooperation at Flickrā€ presentation at Velocity Conference by John Allspaw and Paul Hammond; Patrick Debois created the first DevOps days in Ghent, Belgium, in 2009, where ā€œDevOpsā€ term was coined. This concept was further extended to continuous build, test, integration, and deployment.

šŸ“¦In DevOps principles, a technology value stream is defined as a process required to convert a business hypothesis into a product that delivers value to customers. So, a business idea/concept serves as the main input to the process, which is iterative and transforms user ideas to stories/features which are furthered implemented in code of the application being developed. This code when checked into a version control repository is integrated and tested with rest of software system. The goal of DevOps is to have testing, deployment and operations happening parallelly with design/development, thus enabling fast flow and high quality. Instead of focusing on large chunks of deliverables with higher delivery time, DevOps breaks the deliverables into smaller chunks/batches and maintaining quality in each deliverable.

šŸ’”Idea is to reduce lead time (time taken to fulfil the request by customer) and improve quality of deliverables with a feedback loop. Some of the key flow metrics which are considered to ensure end to end delivery of software deliverables are on expected business value lines:

1. Flow velocity: number of items completed in a set time period. It helps to judge whether value delivery is accelerating.

2. Flow efficiency: the proportion of flow items actively worked upon to total time elapsed, which helps to identify high wait times leading to inefficiencies.

šŸ¹The DevOps principles are aimed to gradually improve the software delivery time with better product quality which is inline with business value identified during inception of the project. Adopting DevOps should be viewed as a transformation undertaken to contribute towards organizationā€™s revenue, market share, and customer satisfaction. It is done in three phases:

šŸ“ŒFirst phase: To maximize flow of delivery, batch sizes and work intervals are reduced to focus on defect free delivery. Deployment time is cut down and frequent deployment to production environment boosts throughput and customer experience. The overall practices include continuous build, integration, test, and deployment processes, creating environments on demand, limiting work in process (WIP) and building systems and organizations that are safe to change.

šŸ“ŒSecond Phase: A fast and constant feedback flow is maintained from customers or business stakeholders end to prevent problems happening again and faster detection of problems. Countermeasures are taken to shorten and amplify feedback loop.

šŸ“ŒThird Phase: Slowly a progressive culture is established which supports a dynamic, disciplined, and scientific approach to experimentation and risk-taking, and a learning catalogue is organized from both success and failures over time. We try to build a system which multiplies the effects of new knowledge obtained and transforms local discoveries to global improvements.

šŸ›’To summarize it, DevOps is a journey which puts the organizations on course to deliver value to their customers and constantly innovate and improve the quality of deliverables. It is not a one manā€™s job or just integration of some tools and practices. It is the change in thought process, environment, and approach to effectively solve a business problem and deliver results end to end.

#softwarearchitect #requirement #architecture #softwaredevelopment #design #business

--

--

Reeshabh Choudhary
Reeshabh Choudhary

Written by Reeshabh Choudhary

Software Architect and Developer | Author : Objects, Data & AI.

No responses yet