Leveraging DevOps through the COVID-19 Pandemic

TribalScale Inc.
TribalScale
Published in
6 min readMay 21, 2020

by Sam Linehan, Agile Software Engineer

With the outbreak of COVID-19, many organizations have had to become completely digital overnight. Even in strong economic times, with no public health pandemic sweeping the globe, the need to deliver software products and services quickly, while maintaining quality and reliability, is essential.

Image courtesy of @scienceinhd

The field of DevOps, a set of practices that aims to reduce the lead time from when a software developer commits their code, to when that code is deployed to production, while ensuring high quality, is hardly anything new.

Organizations of all sizes and across all industries have implemented some form of DevOps (or what they consider to be DevOps) by leveraging a wide variety of tools and best practices. There are several key benefits from implementing these practices, including the use of a “Continuous Delivery Methodology”, which focuses on getting teams to deploy production-ready code more frequently and reliably (more on this later). Organizations can also leverage DevOps to make smarter decisions when evaluating the risks associated with their digital products. This is done by separating the software “release” process from the actual “deployment” process through the use of feature flag tools. In addition to these tangible improvements, empowering DevOps team members to work in a more agile environment can help create a culture of learning and smart risk-taking, that can ultimately help any organization quickly deliver value to end users.

How should organizations react during the pandemic?

In a recent report by McKinsey Digital regarding the digital recovery during COVID-19, they list core principles that CEOs and their organizations must keep in mind. These principles include flexibility and speed, bold actions with a strong understanding of risk, and commitment to a holistic approach.¹ With a strong adoption of DevOps, I believe that these principles can be fulfilled and help organizations thrive during this pandemic, and into the future.

Increasing speed and flexibility with Continuous Delivery

To start with the first principles of speed and flexibility, DevOps in its very nature aims to fulfil these. A specific example of a DevOps practice that increases speed and flexibility is Continuous Delivery. With Continuous Delivery (CD) the DevOps team:

  • Deploys working software often (sometimes multiple times per day);
  • Utilizes a deployment pipeline that is predictable;
  • Ensures that application source code is always in a deployable state.

Conventional wisdom holds that deployment can often be a slow process (and risky too), that involves code freezes and an all-hands-on-deck mentality, which can stop an entire organization during and in the immediate aftermath of a deployment. However with CD, when the team deploys more often, the changes are likely smaller in scope that don’t require the entire engineering team to implement code freezes.

Also, a side effect to continuous deployment is more confidence in the deployment process because the team is doing it more often. Deploying code to production doesn’t have to be scary, so with Continuous Delivery, organizations can get to market quicker and deliver rapid customer value.

Separating release from deployment to manage risk

During times of economic uncertainty, it seems that taking risks might not be the best idea. Introducing a new software service or capability might be a risky investment that may not be fully vetted by user researchers and the product team. One DevOps strategy that allows organizations to take bold yet safer risks when it comes to software development is separating release from deployment.

Deployment: Applying code that a developer has written to a production environment, with the goal of that code being usable by end users at some point in the future.

Release: A determination by the product or customer stakeholder team that code in the production environment is ready to be used by end users.

When releasing features is separated from deployment, engineering teams aren’t restricted from continuously delivering software, while the product team can manage the risk of releasing features to end users.

How do we achieve this separation?

One of the leading ways of achieving the decouplement of deployment and release is by using feature flag or feature toggle software. To give a brief overview of how this software works, the product and engineering teams identify a feature to be developed that can be toggled by an on/off switch within the feature flag software by a product team member. The engineering team then codes that feature wrapped around a conditional statement that checks whether the feature flag is turned on or off, by making an API call to the feature flag software service. These feature flag software tools also allow product teams to target customers based on a variety of inputs so that the feature isn’t released to either only everyone or no one. This management of risk can allow teams to iterate faster, test in production, and release valuable products and services to customers.

Committing to a holistic approach by adopting agile

The last principle that McKinsey mentioned in their report was a commitment to a holistic approach. This involves ensuring that digital initiatives are built cross-functionally, integrating different teams and processes across an organization. This approach involves a change in culture from a rigid IT operations team to an agile DevOps team, which is perhaps the most important yet often overlooked aspect of DevOps.

Now there is an entire set of principles that define agile that I won’t go into in this blog, however I like to summarize agile as:

  • Delivering rapid value to customers, and;
  • Putting people above process.

When DevOps team members adopt this customer first mindset it allows them to work alongside product and development teams creating more organizational cohesion. This strong alignment makes it easier to achieve customer related business goals. By putting people above process, DevOps team members feel empowered to make decisions that affect themselves the most, instead of following strict organizational processes.

Moving forward with DevOps

With a strong DevOps strategy, organizations will be able to deliver valuable software to their end users more rapidly while maintaining high quality. Especially in the time of COVID-19, DevOps won’t only help end users but will have a dramatic impact on an organization internally as well. DevOps allows cross-functional teams to be more flexible and make smarter decisions with possible risks in mind. Times like these often call for bold actions instead of small, incremental changes. Implementing an effective DevOps strategy can help organizations thrive during and after this pandemic.

Interested in learning more about DevOps and how TribalScale can help your organization implement best DevOps practices? Please reach out to our team and be on the lookout for additional DevOps related content in the days to come!

We’re running a free DevOps workshop featuring the expert minds that wrote this blog. Sign up and get all details here.

For more information on how to leverage DevOps through the pandemic, click here to speak to one of our experts.

Citations

  1. Fitzpatrick, Matt, et al. The digital-led recovery from COVID-19: Five questions for CEOs. McKinsey Digital. 2020.

Sam is an Agile Software Engineer who enjoys working with organizations on digital transformation and DevOps best practices. He also enjoys sitting on his couch like most people these days, binging the latest tech TV series.

TribalScale is a global innovation firm that helps enterprises adapt and thrive in the digital era. We transform teams and processes, build best-in-class digital products, and create disruptive startups. Learn more about us on our website. Connect with us on Twitter, LinkedIn & Facebook!

--

--

TribalScale Inc.
TribalScale

A digital innovation firm with a mission to right the future.