DevOps – The new ‘TO-BE’ normal of software development
It is an accepted belief in the field of software that, of several successive cycles of innovation, each cycle is relatively shorter than its predecessor. Data over the last two decades supports this belief. It is also true about the process of how software is developed, maintained and managed over its several releases. Over a period of time, industry adopted new processes of software development, deriving and learning from experience of several executions of their predecessors. Such new processes are perceived to be more mature and current. However, it is also true that these new processes are not merely a result of experience and maturity, but also a result of constraints, automation and desire to deliver innovation faster at lower cost. In this context, DevOps (a short convention for Development + Operations); the latest candidate software development process will most likely be the new normal of software development in the years to come.
It was nearly a decade ago, when the word ‘agility’ gained greater importance, thanks to innovation in software development tools to support the same. The conventional waterfall methodology had its new variants (Spiral, V-Model, Iterative etc.) trying to accelerate the software development. However, speed of execution was considered a major casualty by many stakeholders in these several variants. Factors such as mandated documentation, limited or no end user engagement and pace of execution were perceived drawbacks of this conventional approach whichever be the variant. In the quest of a new software development process, ‘Agile’ methodology became the next go-to approach. Agile methodology in a way derives from the waterfall. It is deeply focused on the end user of the product and suggests that active involvement of the user is must. It is understood that the requirements will change or evolve, but the timeline for delivering features are fixed. Frequent delivery of features and their testing by end users as mandated by this process would reduce time for implementing feedback. These and many more such principles changed software development significantly. Lengthy and tedious documentation was considered irrelevant; software code-base itself was considered a document. Also, with this methodology, people saw an opportunity to reach their customers faster and early. The concept of Minimum Viable Product (MVP) gained significance. With product and end user firmly in focus, this became a preferred model. Different flavors of this model such as SCRUM, Kanban, XP (eXtreme Programming) have been widely adopted.
Owing to continuous automation and innovation, a new paradigm of software development called “DevOps” has emerged. Like the word “Agile” was a decade back, it’s the new buzzword in the industry. A Google search on this term reveals the multiple interpretations of this term. DevOps is an approach resulting from further scrutiny and tailoring of Agile methodology. If we closely observe the different views on this subject, it’ll be clear that the urge to be lean, responsive and innovate faster has lead to this approach. All principles of Agile methodology still hold good for this approach. However, even with the Agile approach, while the pace of software development increased, the last mile of deployment and operations were still convoluted often leading to delays and dissatisfaction for customers. What DevOps does is to tie the development and operations teams tightly into the fold of overall software delivery to ensure better customer engagement. This new approach changes the game of all key stakeholders in software development (i.e. Dev, QA and Operations alike). A reorientation of software development will be necessary for everyone. A developer no longer can merely write a piece of code, unit test it and call it done. A QA can no longer merely test the delivered code. Operations can no longer ask for detailed set of instructions to install and operate the software. This approach makes everyone sport a “Dev” hat. Developer will build the software and automate unit tests. QA will test the software using an automated process. Ops will automate deployment and operations of the software in conjunction with Developers and QAs. It is important to note that “automation” is going to be critical for each role.
DevOps currently is undergoing a typical hype cycle which will last for a while before the industry and community understands and adopts it with certain level of maturity. As the industry begins adopting it eventually, it will most likely lead to lean organizations making many roles viz. QA and manual operations redundant and will necessitate newer skills for all roles. It is also likely to shorten the cycles of innovation further leading to newer products and services. DevOps indeed will be a new normal of software development for several years to come and it will be interesting to observe and understand how various industries adopt this methodology and lead to the next paradigm shift.
The views expressed above are entirely personal and don’t represent organization(s) I work(ed) for directly or indirectly. Any feedback is welcome.
In 2024, I read this, and I find your prediction and far-sightedness so true. Hats off!
I feel hype cycle may be over and its in the next stage of early movers..