Skip to content

How DevOps Changes Companies’ Ways of Working: Experiences and Insights from a DevOps Engineer’s Perspective

Working as a DevOps engineer is often like hiking on technology trails where old and new work methods and technologies meet. The purpose of this article is to share some of my experiences in this diverse and dynamic field and to explain how DevOps can renew and improve companies’ ways of operating.

Challenges of Legacy Technologies

One of the most common challenges I have encountered in my work is related to the use of legacy technologies. Although these older technologies may be familiar and reliable, they often do not offer the necessary flexibility or efficiency in today's fast-paced business environment. For example, the lack of automation in the entire product lifecycle can lead to excessive manual work and result in a situation where software developers' valuable time is constantly spent on CI/CD tasks or debugging them. This is not only inefficient but also prevents developers from focusing on innovative and value-adding work.
 

Lack of Release Processes and Ad Hoc Solutions

Another common challenge is that companies lack clear release processes or have incomplete ones. This leads to specific problems being solved with tailored ad hoc solutions, which may provide temporary relief but are not sustainable in the long run. Firstly, ad hoc changes can cause errors that can lead to downtime or degrade software performance. Secondly, ad hoc solutions can make the system more difficult to manage and reduce its predictability. Additionally, they usually do not serve the company's long-term goals or support its sustainable growth.

The release process is crucial in the DevOps operating model. It is an essential part of the software development cycle that ensures software quality and continuous delivery. Carefully planned and efficiently executed release processes enable changes to be made to the software quickly and controlled, while minimizing the risk of errors and downtime.

In the DevOps operating model, the release process is often automated. This means that new features, fixes, and updates can be delivered to production quickly and reliably. Automated release processes can significantly improve a company's ability to respond to market changes and competition. Automation requires close collaboration between different teams, clear process documentation, and efficient tools. Additionally, it needs to be flexible to adapt to changing requirements and situations.

However, automating the release process is not an easy task. In my case, it meant integrating tests (unit, integration, functional security, code quality analysis), possible builds for different platforms (reusable environments), documentation, and final delivery into the CI/CD pipeline. And when all these aspects were fully automated, errors were detected and fixed before moving to production. Release was no longer a heavy process done infrequently but could be done every day if needed.

Although improving and automating release processes can be challenging, it is an investment that pays off in terms of improved efficiency, quality, and flexibility. When release processes are efficient and smooth, developers can focus on innovation and value creation, which is crucial for a company's success and growth.

About the author

Alexios Sarantis

DevOps Technical Lead