Using DevOps During the COVID-19 Pandemic
The COVID-19 pandemic we’re all facing this year is transforming the workforce throughout the whole world. In fact, according to Stanford University research, the US has become a work-from-home economy. 42% of the workforce now working from home full-time. While some businesses are finding it difficult to adjust to this modern lifestyle, others went on immediately. Looking ahead, for a large number of organizations, the inability to adapt could be fatal.
With the pandemic, numerous companies have had to become fully digital. Although the need to deliver software fast and efficiently has always been present, now it’s becoming bigger than ever. However, fast software delivery also brings a lot of error-prone processes.
DevOps is a collection of activities meant to minimize the lead time between a code commit and deployment to production, thus maintaining this process on a high level. This way of working, and even thinking, has been present in software development for a while. However, with the new situation we’ve encountered, its benefits are getting more obvious.
A large number of companies from multiple industries are already using DevOps through various tools and activities. They enjoy a number of benefits, like continuous delivery, agile teams, separated release, and deployment processes. They all lead to an overall improvement of the product and service quality.
As it doesn’t seem like we’re going back to the office any time soon, it seems like DevOps will be more than necessary in the near future.
Where does DevOps stand during the COVID-19 pandemic?
European tech companies are also transforming due to the COVID-19 pandemic. Many developers’ teams went fully-remote, moving from a single location to many different ones. Also, a lot of developers went to their home countries.
Even though remote working in a normal situation is a very natural and useful thing, the quick shift to a remote setting was a shock for many. It turned out that going remote voluntarily and going remote by force are two completely different things.
Teams had to rapidly adapt to the new normal while maintaining their productivity at a high level. This opened the need for distributed DevOps, forcing teams to become agile even if they weren’t before.
For some teams, this switch was easier than it was for others. IDC Europe’s blog post on this topic mentions GitHub and Microsoft as teams that have been gradually moving to a distributed model. On the other hand, Cycloid’s primary model is distributed, so the coronavirus situation didn’t change their way of working. Zapier and Trello are other companies that are remote by default. Moreover, Twitter and Atlassian adapted to the situation by allowing their employees to work from home permanently.
However, these shifts require other types of investments, requiring companies to provide a stronger tech stack for their employees. For example, GitHub and Microsoft are investing in cloud development systems to allow their dev teams easier access to their infrastructure.
Many companies are considering going down this path. In fact, Codefresh conducted research asking teams how the pandemic is affecting their DevOps state. 58% of respondents told Codefresh that due to the pandemic, they are moving parts of their infrastructure to the cloud. Moreover, 17% are migrating their entire stack to the cloud.
So, companies are increasing their DevOps budgets as it positively impacts the productivity of developers. Here are our suggestions on what teams should focus on to become more efficient:
Continuous delivery to make teams more efficient
Code deployment can be a complex process. Errors can disrupt the functioning of the entire software, and therefore, the entire organization. However, continuous delivery has come to the rescue.
DevOps is all about continuous delivery. This means that the team always has the source code in a deployable state, deploys software often, and is confident in the deployment pipeline. When a team deploys often, it means that modifications aren’t that big. It also means that they can be done by a few people instead of the entire team. This makes communication much easier.
More trust in the implementation process is often a positive consequence of continuous deployment. This is due to the increased deployment frequency. It doesn’t have to be stressful to deploy code to production, so teams can accelerate go-to-market. What is more, they can provide customer value in a shorter period of time.
Making release and deployment separate processes
An article by TribalScale suggests separating release and deployment as a useful action to manage risk during times of economic uncertainty. As a reminder, deployment means moving the code to production. On the other hand, release means making the app (the code) available to end-users. When these two processes are separated, teams can continuously deliver, with a reduced risk of releasing faulty features to end-users.
TribalScale suggests that the easiest way to achieve this is to use feature flags or feature toggle software. This means that the product and engineering teams develop features in a way that they can be toggled by an on/off switch within the feature flag software. By making an API call to the feature flag software provider, the development team then codes the feature wrapped around a conditional statement that tests whether the feature flag is on or off.
Tools like these can give control to the development team to release a feature to either everyone or no one. It also allows them to manage risk more effectively, iterate faster, test in production, and release more quality code.
DevOps is a mindset shift
When it comes to DevOps, technology isn’t the hardest part. It’s the processes that need to be modified and incorporated within the company to make everything work. DevOps benefits will open the need to many new processes, KPIs, and HR shifts.
Most importantly, in the context of a pandemic, the distributed collaboration also requires many adaptations. Now that the entire team is remote instead of just the people who took a remote day, the culture becomes remote. This means that companies will have to come up with a process of a cultural shift in the following period. During this process, they’ll have to put the focus on becoming more agile and flexible. They also need to have tolerance for their employees’ needs and situations.
For any enterprise, the challenge would be to preserve the stability of tech and DevOps teams, while practicing cross-functional operations and retaining the talents as they will be very hard to find. Now, to maintain organization on a higher level, teams will have to address issues they usually don’t pay too much attention to. These can be small interpersonal conflicts or tools for asset sharing.
The new skills DevOps professionals need to possess
For this purpose, organizations will not only have to reimagine their hiring process. They will also have to train their existing staff to support distributed DevOps. There will be a major change in the skills required to successfully execute DevOps strategies, according to the DevOps Institute. What is more, technical skills won’t be the only ones important. Talents will also have to possess personal skills like empathy and an ability to motivate themselves in a homework environment. A person who has the right combination of technical and soft skills would be the ideal candidate for a DevOps engineer.
As more companies are going remote, these skills are becoming even more essential. Communication skills and agility are particularly important when team members aren’t at the same place. Broken communication can result in broken technology and errors in crucial tasks and projects.
Last but not least
Also, keep these things in mind:
- If you’re not on the cloud, now is the time to start. We don’t know when this thing is going to end. Moving to the cloud is the right solution that leads to more secure and scalable processes.
- Automation is very important. When it comes to distributed teams, communication can get broken very easily. This can lead to the disruption of many crucial processes. Automation can eliminate unnecessary questions. Moreover, automation can reduce a lot of time spent on manual tasks and minimize the errors.
- Prevent burnout. Now that we’re working from home, there’s no clear border between our private and professional lives. We work at the same place where we spend time with our families. This can mix things up a lot and lead to burnout. Switching to distributed DevOps can lead to additional stress, so make sure you have an understanding of your employees’ feelings. The best way would be to set clear communication hours and leave the rest for relaxation and family time.
A good DevOps strategy can help teams deliver quality software in a short period of time. In times of crisis, this can give a major boost to the company's growth.
DevOps helps cross-functional teams to be more agile and, with future risks in mind, make better choices. Instead of minor, gradual improvements, times like these call for bolder changes.