image

DevOps

Speed up DevOps delivery…without jeopardizing your most valuable asset

Collaboration. Automation. Accountability. Integration. Monitoring. Visibility/Transparency. There are many components to DevOps, but ultimately, it’s all about speed. How do you release valuable applications faster…with the level of security and quality that makes sense for your business?

Not surprisingly, much of the pressure to “speed it up” tends to hit developers the hardest.  But top developers are difficult to recruit, costly to retain, and easy to lose. Constant pressure to magically do more, faster – especially if the rest of the team is not equally fast and productive – will eventually frustrate developers, placing your most valuable asset at risk.

Here are a few proven strategies for accelerating application delivery without increasing the burden on developers.

Democratize with low-code/no-code

Low-code/no-code development is one way that organizations are meeting the relentless demand to deliver more software faster. Low-code/no-code essentially “democratizes” the development of common (typically non-differentiating) applications by enabling non-programmers to build and customize standard business workflows via user-friendly interfaces. It also helps developers quickly knock off many routine tasks without worrying about low-level implementation details…so they can focus their time and energy on the more strategic and challenging tasks that set your business apart.

Likewise, you can also democratize test automation, which often eats away at developers’ time because traditional test automation approaches require scripting expertise. Just like low-code/no-code development allows non-programmers to build their own applications, scriptless testing approaches like model-based testing and vision-based test automation allow any business user to check if the functionality they “own” works as expected.

Commit to broad upskilling across the board

Most enterprise organizations have pockets of high-performing DevOps groups, but struggle to scale their practices and—more pointedly—their successes across the broader organization. The fact of the matter is that scaling DevOps is hard. DevOps Institute recently found that over 50% of organizations are still reporting that the DevOps journey remains a challenge. The same research study also found that the single-most critical factor in DevOps success is actually upskilling the entire team with respect to process skills and knowledge, automation skills, and “human skills” (e.g., collaboration, interpersonal skills, problem solving, etc.). Jayne Groll, DevOps Institute co-founder and CEO, summed it up nicely: “We must update our humans through new skill sets as often, and with the same focus, as our technology.”

To be clear, the action item here isn’t to teach everyone every aspect of DevOps. It’s to ensure that every team member (from developers, to tester, to scrum master, to SRE) is effectively contributing to the shared mission of delivering great software fast. As Clark Golestani, retired CIO of Merck, shared: there’s nothing more frustrating to developers than scrambling to build something fast, then seeing the release delayed because testing, ops, or some other role isn’t executing at the expected speed.

Continuous Delivery alone can’t rapidly deliver value to the business. Everyone involved in “Continuous Everything”– Continuous Integration, Continuous Testing, Continuous Monitoring, and so on—must be performing  at their best and have ready access to the various tools and resources that maximize their success.

Connect all the dots, in real time

The applications being released in today’s DevOps processes are the product of many different components (mobile + mainframe + microservices + APIs + packaged apps…) being developed by different teams, on different schedules, using different tools. If you lack real-time insight into the overarching application’s release readiness, you’re probably falling into one of two traps (both of which impact your release velocity and throughput):

  • You’re releasing issues into production. This means that developers will later have to stop what they’re doing, take time to reacquaint themselves with that functionality, figure out how to fix the problem, and work with QA to ensure it’s really fixed (and didn’t inadvertently break something else in the process).
  • You’re unnecessarily delaying releases. It’s not uncommon for organizations to defer delivery as inefficient testing is completed, only to discover that they could have released weeks earlier…if only the quality feedback could have been provided faster.

For each team and each component, there’s likely volumes of siloed data points buried within different instances of planning, dev, build, test, release, and ops tools. If you can unlock that data to construct a clear, accurate release assessment, you can release the moment you’re ready… without worrying about production issues derailing your subsequent releases.  And the more you can automate the collection of those critical data points, the more efficiently you’ll be able to fix critical issues—so you can reach the finish line faster.

Above all, be sure to continuously identify and aggressively eliminate your organization’s greatest constraint at the current time. Often, it’s something you wouldn’t suspect; for example, the latest GitLab survey found that the #1 delay was testing (47%), followed by planning (39%). Actually writing the code ranked #3 at 30%. These findings underscore that it’s not only possible, but also necessary, to look beyond development in order to accelerate delivery.

Of course, your bottlenecks will vary. Practices like Value Stream Management and Software Delivery Management will help you identify the causes of your most dangerous delays. Armed with that knowledge, you can set out to break bottlenecks and accelerate delivery…without burning out your developers.

*Originally published in Forbes