Progress announced the latest release of Progress Flowmon.
Are we there yet? You've no doubt heard, or said, that familiar refrain on a road trip. No matter where you're going, as soon as you embark on your journey at least one impatient person sighs and asks that dreaded question.
In this case though, the journey I'm talking about isn't a road trip per se. Although, the analogy certainly works. Instead, I'm talking about the journey to mature software delivery. As organizations chart their path along the road to digital transformation, efficient software delivery has become a key element to respond to rapidly changing market dynamics, meet customer needs, and quite frankly, stay in business.
In fact, according to a recent study by Forrester, "software delivery maturity is highly correlated with business objectives, like improving market share, user adoption, innovation, and customer loyalty." Which brings me back to the dreaded question — are we there yet?
Just how do organizations know when they've arrived at a point of mature software delivery?
And if an organization isn't anywhere close to DevOps maturity, what can they do to get there?
To answer these questions, let's dig a little deeper into the Forrester study I mentioned. Commissioned by CloudBees, Forrester surveyed more than 300 companies in the US and Europe ranging in size from 500 to more than 20,000 employees with revenues of $100 million to more than $5 billion across a wide array of industries.
To gauge DevOps maturity, IT leaders were asked to rank their organization on a scale of 1-5 across a range of software delivery automation capabilities and organizational characteristics, such as use of modern software delivery capabilities across all technology stacks, use of features flags, ability of all development teams to push code all the way to production, availability of all the information needed to understand where the bottlenecks are in the SDLC, strong inter team coordination and collaboration on shared goals and clear visibility of all affected stakeholders into SDLC initiatives and status.
According to the results, organizations with high software delivery maturity use a modern automated software delivery platform that offers feature flags and provides a high degree of visibility. In parallel, high maturity companies consistently pass security and regulatory audits, developers run and maintain the systems they build and DevOps teams see themselves as integral to the company's success.
If your organization can check these boxes, then you're well on your way to software delivery maturity. On the other hand, if your organization is lower on the maturity spectrum or just starting a DevOps initiative, here are some things you can do to improve the efficiency of your software delivery.
Standardize DevOps Tools
Although development teams often want the freedom and flexibility to use the tools they like best, when you standardize tools across your organization, you can make huge strides forward towards maturity. This is particularly true if your organization has several development teams. When all teams use the same tools, you can compare the utilization across teams to identify points of success and struggle. From there, you can finetune processes to reduce friction. You can also create templates and abstracts to eliminate redundant work and share lessons learned across teams.
The Forrester study validates this thought: "While [adopting multiple tools] is inherently not a problem, multiple tools across groups or platforms can create complexity that slows down delivery, makes it more difficult to understand delivery status, and creates other visibility and collaboration issues."
Automate Software Delivery
This strategy goes hand in hand with the standardized toolchain point above. With a common set of tools integrated at a platform level on an automated software delivery suite, low maturity organizations can significantly increase the efficiency of their software development. According to the Forrester report, "Automation is a key enabler for software delivery, as it allows developers to focus on their key creative tasks while ensuring that quality checks and other release imperatives are routinely covered."
Increase Visibility into Software Delivery Processes and Outcomes
According to the Forrester report, "As DevOps initiatives scale up, coordination and visibility become increasingly important; without them, broader business objectives suffer, and teams start to thrash." With standardized tools, reporting, analytics, and metrics, all available on an automated software delivery platform, you can improve visibility to identify and eliminate bottlenecks. If your organization has to consolidate data from several different systems over many hours or even days to answer questions about your software delivery, you need better visibility into your DevOps processes.
Create Self-Service Capabilities
If your developers have to submit a ticket and wait for someone to allocate infrastructure resources, you're impeding the software delivery process. With self-service capabilities, you can eliminate barriers, friction, and bottlenecks, and instead, give your developers freedom and flexibility to be creative and self-sufficient. High maturity organizations offer self-service catalogs or shared module catalogs that allow developers to provision services, use templates for common tasks, test, and deploy new code without waiting for another person to act. When a developer doesn't find what they need in the self-service catalog, the DevOps team can create the item and make it available for all development teams.
The findings in the Forrester report definitively point to efficient software delivery as a point of delineation between high-growth organizations and laggards — with higher revenue, achieving goals, and adapting to market changes. As you progress along your journey to DevOps maturity, I encourage you to implement these strategies, so you're no longer asking, "Are we there yet?" Instead, you'll be asking "What's next?"