Agile DevOps Software Engineering

CI/CD is not DevOPS

So…what is DevOps? If you start explaining CI/CD and then just stop there then don’t worry. You are not alone. There are many I met just like you.

People are misinterpreting the principle and philosophies given to their understanding that’s becoming a standard phenomenon. Everyone interprets differently and hence the chaotic situation.
DevOps is one such concept/ principle/ philosophy. There are many such in the software industry. To name a few Agile, Digital Transformation, Web 3.0, etc.,


By knowing the goals that DevOps is trying to achieve would help us to achieve DevOps. The goals enable us to reverse engineer and identify the actions needed to follow the principles efficiently.
Software releases are happening for generations. Why the outcry for DevOps all of sudden has come in? The analysis of the topic would uncover the need for DevOps.


Albeit the software solutions are making humankind’s life easier and that’s improving when the years go by. On the other hand, software development is becoming harder and harder. That’s because of the continuous innovations in every aspect of product development. The thirst for developing a better product give birth to lots and lots of tools, frameworks, and technologies. Every tool/framework/technology solves a particular problem and to solve a bigger one (a product) needs all these needs to be seamlessly integrated and cohesively used. Software development is no more easy job to do due to this. This would also fuel up the complexity of the application hosting environments. If the environment is differently configured then the product would behave differently across dev, stage and production environments.


The production environment is always a different world for various reasons. It’s configured with additional tools, frameworks, and applications to achieve security, scalability, availability, and maintainability. As these things are majorly needed in a Production environment and not in the dev/stage environments the difference in the environment would come in place.


Infra Engineers are conscious about keeping the system secured, available, scalable and maintainable. Developers are keen on to roll out features rapidly as quickly as possible. Infra engineer being flexible to the dev. team to roll out the feature changes and being lenient on the release procedure may shake the production environment’s steadiness. Hence the Infra engineers are always seemed to be cautious and rigid to do any change in the environment. This brings in friction and makes both parties work in silos.


While the production move reluctantly approached, Agile advocates shipping the working software as frequently as possible. This adds fuel to the problem. The increasing demand to constantly deploying into production environment tests the patience of an Infra engineer.


This scenario paves a way and mandates the need for working as ONE team. DevOps demands both dev and infra teams to work in unison. The entire product delivery planned in advance and made it transparent to all stakeholders and that’s including the Infra team. The Dev and Infra team should think about any foreseeable impediments and release plan and come to a consensus on the action plan. The teams should honor the intentions and objectives between themselves. The teams should have mutual respect for each other. Should appreciate the Development team’s intention to ship often and Infra’s efforts to protect the environment. When they work as one team Dev can understand the sensitiveness of the production environment and their consequences and Infra team can understand the business benefits of rolling out often the working software.


Anything else that the teams do to meet the above goals considered as a process and that’s very contextual to the team. Hence, people get confused as everyone follows a different process and may have a difference of opinion on how to reach the goal. That’s creating a chaotic environment and varied definition to DevOps. A bunch of them still believe that CI/CD is DevOps and that’s a major problem. CI/CD plays just a cameo role and collaboration is the HERO.

Author

KR Kaleraj