The Strategy (or Lack Thereof) Around Software Today
Join the DZone community and get the full member experience.Join For Free
Few would argue that, inside an organization, the teams that create software get a lot more respect than they used to.
For years, software was a manufacturing and/or maintenance function that got done out of sight, hidden away in some dark corner of a company. Software delivery was viewed as more of a cost center to be managed than a resource to be leveraged for strategic value. Now, companies rely heavily on the software they produce to perform critical tasks. They expect software to transform their inner operations, to help departments work smarter and improve productivity. Even more importantly, many are betting their companies’ futures on their ability to create innovative, impactful software applications that attract new customers.
Clearly, software plays an important role in virtually every business’s strategy. But does software delivery actually drive their business strategy? Do organizations respect the process enough to develop a customized end-to-end strategy aimed at delivering the best software they can that generates the most value possible?
At this point, the short answer is generally “no.” While software delivery has come a long way in a short time, it still operates in a disjointed, sometimes confused manner that frustrates all the stakeholders in the process. Too often, the people who design, build, test, install, market, and sell the software that organizations produce have no idea where an app is in the delivery process or how they can best improve that process. The information doesn’t get shared. Missteps trigger mistakes, leading to missed deadlines, low-quality software, and unhappy customers.
DevOps cultures have sorted out some internal rivalries, and continuous delivery pipelines have brought order to some internal processes. But software still largely exists on its own island — respected but misunderstood, valued but disconnected from organizations’ overarching goals.
What’s needed is an industry-wide model to elevate software delivery to a core business function — like finance or sales. Software delivery shouldn’t just be a tangential part of an organization’s strategy. It should have its own strategy that connects all the steps in the delivery process and makes sure they’re aligned with the organization’s mission to drive revenue and overall business value.
Two Views of Orchestration
What’s wrong with today’s version of software delivery? Picture two versions of an orchestra, one with all of its complementary roles and responsibilities aligned perfectly, and one that’s in disarray.
In a well-aligned orchestra, the composers establish strategies to not only create beautiful music but also sustain their orchestra for long periods of time. Inside the concert hall, the conductor leads dozens of musicians, making sure each is contributing what is expected to the group. Violins blend with horns, flutes, and keyboards, drums keep time, and the occasional bell or gong puts just the right accent on the sound.
Behind the scenes, staffers book the concert hall, oversee logistics, promote the event, and manage finances to ensure that upcoming events go off without a hitch. Everyone’s in sync, and the final product usually delivers flawlessly.
In a disjointed orchestra, the whole effort could turn into a mess very quickly. Musicians that are used to playing a certain way would ignore the conductor, events would be managed poorly and unhappy customers would leave, perhaps never to return.
Software delivery functions could operate like a finely-tuned orchestra. But often they don’t. Each component tries to work to the best of its ability, using the best information it has at hand, based on its best interpretation of what the organization expects of them. But if the departments can’t share the right information with each other and they have little visibility into how each of their contributions affects the other, the symphony they’ll deliver will be cluttered with sour notes.
Here’s an example of how creating features without a sound end-to-end strategy can foul up software delivery.
Product designers send developers request for new features for an existing application. The business side puts a rush order on the features, so developers push hard to meet a tight deadline. Developers don’t have access to user stories generated for the requests, so they make incorrect assumptions about how the features will be used.
When the coding moves to the operations side, that team doesn’t realize it’s coming. Ops workers determine the code wasn’t scanned properly for security hygiene; they send it back for rework. Neither side knows where the violations took place and delays pile up, putting the launch in jeopardy.
Meanwhile, marketing, sales, customer success, and support don’t know when the new features will arrive, so there’s the potential to be unprepared for the app’s release. Management wants to get the features out to the market, so they push them out without proper documentation. Users don’t realize the new features are there until they log in. They get confused and they submit negative reviews, damaging the brand.
Basically, no one’s sharing information, and the right-hand doesn’t realize what the left hand is doing.
Embracing Software Delivery Management
Having a cohesive software delivery strategy could help this group. A blueprint for such a strategy is outlined in a new model called Software Delivery Management (SDM).
SDM addresses the need to comprehensively manage software delivery as a differentiating and core part of the business. It aims to unite all of the stakeholders in the delivery process around the common goals of increasing software delivery velocity, quality, predictability, and value.
How is this done? By embracing four foundational pillars — a common data model for leveraging common information that creates visibility and insights into and across the SDLC. This leads to creating connected and unified processes; resulting in all functions and teams collaborating.
Connecting tools, data, teams, and processes through an SDM model can untangle some of the problems software delivery functions face.
Developers can easily access user stories, so they have the context on how designing certain features can meet customers’ specific needs. Ops team members have visibility into when a set of features is scheduled to arrive and security specialists can scan the code earlier. Business departments know when to expect updated features, and they can plan richer, more strategic roll-outs. Sales and support can gather user feedback more seamlessly and reconnect with other departments to continuously improve the product.
Each component in the delivery process has the benefit of context. Teams understand what is behind the decisions that drive software through the value chain. Different stakeholders can weigh in with recommendations. They become more invested in the overall process and more committed to delivering the highest-quality software possible, at a velocity that is appropriate.
Software Delivery in Today’s Covid-19 World
It is clear that the demand for DevOps software will explode. As we move through this pandemic to a new normal where remote work for software organizations will require non-existant or partial automation to give way to full automation, the conditions of remote work will need not just this new level of automation but systems for common information and visibility.
Additionally, the need to develop new software while also changing existing software to support digitizing physical and manual processes across industries will drive demand for new software innovation, resulting in new projects requiring tooling. However, software teams will be forced to spin up these new projects and implement all this new tooling very quickly without incremental budgets.
It will be critical for organizations to fully embrace software delivery as a core business process to not only survive the current environment but leverage the opportunities as companies look for help to adapt to the new normal.
Having a well-defined software delivery strategy is critical for companies to succeed in today’s business environment. It’s become easier than ever for users not only to consume software – but also to delete and replace it if they’re not satisfied. Software-driven organizations need to be on their game, delivering the right products, with the right functionality, at the right time to satisfy users both inside and outside their four walls. They can do this by leveraging an SDM model and moving software out of the dark corner of the building once and for all.
Opinions expressed by DZone contributors are their own.