3 DevOps Mistakes We’re Still Making
DevOps is now a teenager. Like a human teenager, it’s light-years beyond an infant, but a little awkward and not fully mature. We’re getting there, though, slowly but surely. We have to. The pressure to release more software faster was already high, only for COVID-19 to shift it into overdrive.
We’ve already mastered many critical elements vital to DevOps success. There’s no disagreement on key tenets: Collaboration is king, automation is essential, and “continuous everything” includes continuous integration/deployment/testing, as well as continuous improvement.
One component of that continuous improvement is actively seeking out the mistakes that impede success and working to avoid them. Here are three of the top DevOps mistakes I’ve seen hundreds of Global 2000 companies making and what you can do to avoid them.
1. Overburdening Developers
With “digital transformation” on the top of every CIO’s 2021 agenda, businesses expect a steady stream of game-changing functionality, delivered at record speed, to blow away the competition. Of course, this must be a team effort involving everyone from developers, to product owners, to testers, to ops and SREs. But whenever more features are urgently needed or something falls short of expectations, who takes the heat? It’s almost always the developers. Yet, unless you’re a GAFA (Google, Apple, Facebook, Amazon), you probably don’t have the luxury of top-notch developers knocking on your door. Attracting and retaining valuable developers is an ongoing struggle.
It’s hard enough to satisfy the business’s insatiable demand for software when your developers are focused only on developing. That’s why your strategy to “shift left” things like testing and security has to go beyond the common response of just dumping more responsibility on the developers. Don’t get me wrong: Building quality and security into the application from the start is essential. But do it in a way that doesn’t substantially add to developers’ already hefty burden. Otherwise, your top development talent is likely to move on to an organization that lets them focus on the creative work they crave.
Bonus: Here’s a great expert panel discussion on ways we can unburden developers.
2. Expecting Everyone to be a Superstar
Every organization and every team member can — with the right approach and the appropriate training/support — contribute to the organization’s DevOps success. But don’t expect everyone to contribute to the same extent, in the same way.
The early adopters of any movement, process or technology tend to be your superstars, your overachievers. They’re extremely passionate about their work, they track all emerging trends in their field and they’re intrinsically motivated to do whatever’s needed to make it work. It becomes a personal mission — often bordering on an obsession. From constantly re-envisioning and reshaping the proposed solution, to hunting down ways to solve the next nagging problem, to building new approaches and extensions that are contributed back to the broader community, they’re all in. And for the most part, they make it work, delivering impressive results.
But it’s not easy to scale this success. Most application delivery professionals don’t work this way. Even many who excel in their job don’t share this sense of adventure and the primal urge to bring something new to life. They’ve spent years, often decades, perfecting their craft, and they aren’t always eager to shift gears into a dramatically different way of working.
Moreover, different enterprise teams have different skill sets, different comfort zones, different priorities and often vastly different application stacks and compliance/governance requirements. The DevOps approach and toolset that works great for the startup-like team working on your mobile experience might not fare so well with the SAP-focused teams responsible for the back end.
Nevertheless, everything is connected, and everyone needs to be brought under a broader DevOps umbrella if you really want to accelerate innovation enterprise-wide. Often, the path to that scalable success involves:
- Persisting with the core philosophy underlying the initial adoption.
- Offering additional enterprise-friendly options in terms of toolsets and practices.
- Introducing an overarching layer of orchestration, visibility and governance (yes, here it is, the nasty g-word!) across the various groups working on related systems and projects.
Bonus: Watch this “Human Side of DevOps” roundtable exploring what’s needed to upskill for today’s and tomorrow’s digital transformation.
3. Releasing Without Sufficient Insight Into User Experience
Today’s users have exceedingly high expectations and low tolerance for anything they perceive as a problem. Forrester recently found that even a tiny improvement in customer experience can have staggering impacts on the company’s bottom line. It estimates that just a one-point CX index increase (on a scale from 0 to 100) can boost annual revenue significantly — for example, $1.1B (automotive), $496M (retail) or $388M (telecom). It’s fair to assume that a minor slip in the opposite CX direction will result in a comparable revenue loss.
Of course, everyone on the team wants to create and ship software that users love. It’s one team, one fight to the finish line. But different roles bring different perspectives, strengths and weaknesses to the table. From planning, to testing, to releasing, to monitoring, you need to engage team members that really understand the business and doggedly defend the overall user experience.
Many DevOps teams are still relying solely on low-level technical checks (e.g., unit testing) to determine whether a release candidate is safe to unleash. Such tests can be great for catching coding mistakes, but much more is needed to deliver the exceptional experience that will ultimately give your organization an edge. This includes:
- Risk-based testing, so that you can instantly decide whether a new test failure is truly a showstopper.
- End-to-end functional testing of transactions (e.g., from mobile, to APIs, to packaged apps like SAP and Salesforce, all the way back to custom apps and mainframes).
- Load/performance testing, to ensure that the application scales to meet surges in demand.
Bonus: Read Forrester’s research on the Continuous Testing practices that separate DevOps and Agile leaders from laggards.
If your organization is making these mistakes, rest assured that you’re certainly not the only one. They’re quite common in enterprise DevOps, and, unlike a human teenager, they’re rather easy to correct and get on track.