The demand to deliver a consistently positive and innovative customer experience is something that many companies — more specifically, their DevOps teams — are currently grappling with.
Expectations from customers to have fresh new content, features and visuals have driven companies like Netflix to deploy hundreds of releases a month. But it's not just the big names like Walmart and Reddit who are feeling the pressure to deliver coding updates regularly. In fact, a recent DevOps survey of over 100 organizations conducted by Split Software showed that 67% are releasing new features every two weeks and nearly 20% are releasing new features daily. On top of that, the latest DORA report's results showed that of the organizations surveyed, 46% were releasing new features weekly. This is much faster than ever before.
While the ability to push out multiple features a week may appear as a great accomplishment for DevOps teams, the same survey showed that 82% commonly discover bugs in production. This may not seem like such a big issue, but with 40% of organizations stating that it takes them more than a day to resolve the problem and get back to normal, this can cause quite a bit of damage to an organization's reputation and bottom line.
In addition to the discovery of bugs after deployment, the recent DORA report showed that 23% of software changes fail in organizations that deploy code weekly, and in the DevOps survey of more than 100 organizations, 27% stated that they commonly experience downtime after releasing a feature.
According to IDC, one hour of downtime can cost upwards of $500,000. The survey revealed that 74% of teams take greater than one hour to detect issues with new features (38% take more than one day), and 41% of teams rollback or hotfix more than 10% of new features. Of those teams, roughly a third primarily do hotfixes (AKA "fail forward"), one-third do rollbacks and one-third do both. Most concerning, the mean time to resolve (MTTR) was greater than one hour for 88% and greater than one day for 40% — a potential of millions of dollars in revenue loss from a single incident.
It's ironic that amidst all of this rush to push out features, 27% of the teams surveyed reported that new features were often poorly adopted or utilized, pointing to great waste amidst the rush.
The speed at which DevOps teams are deploying new features is unlikely to slow down. Instead, as consumer demand for a more efficient and innovative customer experience continues to grow, it may actually speed up. The following three tips could assist DevOps teams in handling the growing pressure for speed of deployment of new features while still ensuring what they release is not negatively impacting their users or their company.
1. Gradual Rollouts
Gradually rolling out a new feature can allow for bugs and issues to be detected earlier and greatly reduces the blast radius. Practical gradual rollouts include releasing the new feature to only internal users and/or beta testers, and then progressively to larger portions of users. Feature flags are a great tool to use for gradual rollouts, as they provide granular targeting of a release specific subsets of your users and changes to targeting can be made instantly without a new deployment.
2. Integrated Feature Monitoring
Integrated feature monitoring is when the application monitoring, error monitoring, and feature flags are tied together. It increases the speed and efficiency of detecting bugs and issues at an early stage. Integrated feature monitoring can both detect small changes in performance or errors and can assign a root cause to the feature at fault.
3. Avoid Unnecessary Work
It is important that DevOps teams focus their attention on factors that will have a true impact. Using experimentation can help. Using online experimentation to test the effectiveness of a new feature will ensure that the work put in by the DevOps teams into the development process is valuable.
While the recent survey showed that the need for speed in feature deployment is causing a decrease in the quality and efficiency of new features, there is still hope. DevOps teams are already moving quickly and consumers are used to this level of speed, so slowing down is not an option. But implementing the three tips above will help with reducing the numbers we see associated with bugs, issues, and downtime, resulting in better experiences for users and a better reputation for the company.