Why you should care about software updates?
While one might expect that only software vendors would care about software updates, it turns out that many intelligent device manufacturers and enterprises are also in the software business today. In fact, many intelligent device manufacturers provide customers with software add-ons or embedded software in hardware products. And, many enterprises develop custom applications for use by internal staff and independent dealers or distributors. In all these cases, there’s a growing need to manage the development, delivery and support of software on a regular basis.
In today’s relentlessly changing business environment, this software has to be updated constantly. Features have to be added to address evolving needs. Fixes have to be provided to resolve quality and security issues. Updates to your software may also be required because of how other vendors have upgraded the other “moving parts” in the IT environment.
Many software vendors, intelligent device manufacturers and enterprises view software updates as an afterthought. But, in a business environment that is becoming increasingly dependent on software applications and devices with embedded software, the need to quickly and accurately deliver new capabilities in a cost effective, low-touch manner is critical to delivering an exceptional customer, partner and employee experience. The consequences of an inadequate software update process can include:
If your software updates are too intrusive, too frequent, don’t work properly, or aren’t properly supported, your customers can quickly become dissatisfied. This can lead to the loss of their business—even if they don’t have any major complaint about your organization’s core products and services. Dissatisfaction also results if your software updates don’t consistently address what customers perceive as your software’s worst deficiencies.
The more software versions you have in your installed base, the greater your development, delivery and support costs. Not having an efficient software update process and policy can drive up your operating and support costs. In addition, you are probably missing out on maintenance revenues if you deliver updates to customers that are not paying for software maintenance.
Lost market share
Companies compete with each other based on their performance across the entire spectrum of value attributes. So if your organization can quickly and cost-efficiently roll out updates that are well-aligned with the changing needs of your customers, partners and/or users—and do so consistently—you will gain a sustainable competitive advantage over those that cannot.
Increased risk exposure
Problems with software updates can expose your organization to all kinds of business risks—such as interruptions of service, liability for customer business losses, erosion of brand value, and exposure of confidential information. An optimized update process substantially mitigates your exposure to these potentially costly risks.
For these reasons and others, every organization should invest in the optimization of its software update process. Failure to eliminate any shortcomings in this process will almost certainly have an adverse impact on your top- and bottom-line business performance.
Why is software updating such a challenge?
Your software update process doesn’t just require attention because of its potential impact on your business. It also requires attention because it is an inherently complex process with many potential opportunities for inefficiency and error.
Several factors make software updating especially challenging and prone to problems, including:
All software updates are not equal
The chart on the next page provides a basic taxonomy of some of the update types you may have to manage.
|Major upgrade||Substantial functionality update that warrants designation as a new main version (e.g. from 1.0 to 2.0)|
|Minor upgrade||Less substantial functionality update that only warrant designation as a “point” release (e.g. from 1.1 to 1.2)|
|Patch||An update that may address a functionality shortfall or problem—but that does not qualify as a “point” release5|
|Hot fix||An update to a specific file such as a dynamic-link library (DLL) or application programming interface (API)|
|Service Pack||A collection of software patches, hot fixes and other changes released at a scheduled or ad hoc interval between upgrades|
The timing of these different types of updates are driven by different conditions. A major upgrade, for example, may be driven by how quickly your development team can complete coding and testing of all components—whereas a hot fix may be driven by a problem that has to be remedied as soon as possible. Tracking, scheduling and coordinating these multiple types of updates makes the software update process far more complicated.
Software updates require involvement from multiple groups
Software updates involve more than just developers sitting in a room and writing code. First, your organization has to figure out what should be in the next update—whether it’s a major upgrade or a hot fix. Product managers, marketers, salespeople and customer support staff need to be included and help define the software update requirements. Technical architects may also have to be involved before coding starts to ensure that updates and upgrades don’t violate critical design constraints that can affect performance and scalability. Third parties may also have to be involved, since it is becoming increasingly commonplace to outsource at least some portion of software development.
After developers complete their coding, that code has to be tested—and support staff has to be appropriately notified and trained so that they can provide any technical assistance customers may need with the install and the new functionality. Salespeople and account managers also need to be informed about updates, since they are often the ones customers come to first with questions or problems. Major upgrades may even require the involvement of C-level executives—since such upgrades may play an important role in your organization’s business strategy.
The appropriate participation of all these parties-of-interest doesn’t just happen. It has to be carefully orchestrated. If it isn’t, your front-line staff can be blindsided by unanticipated customer issues—and, even worse, your updates may not even address your customers’ most pressing needs.
All customers are not equal
In a perfect world, your customers would be only too happy to install updates that enhance your software. They would install every update as soon as it became available. And, their IT environments would be so stable and homogeneous that updates would never create unanticipated issues for your own software.
This, of course, is not the case. Customers are different, and they have their own preferences when it comes to the frequency and acceptability of updates. That’s why your organization has to be customer-centric with respect to software updates, ensuring that update content, timing, installation requirements, and support policies are in line with customer needs.
Resources are finite
In most organizations, resources are already stretched given the increasing complexity of the software and the computing environments into which that software is now typically installed.
Without a coherent updating process, these limited resources can easily be wasted on unproductive and/or redundant activities. Critical tasks such as quality assurance can wind up short-changed. Such outcomes are unacceptable in a business environment where software functionality is revenue-critical—and where customer expectations regarding software quality and reliability continue to rise.
While much of the above material focuses on external customers, many of these same issues apply to software you develop for internal distribution. User acceptance is critical if your organization is going to get maximum return on its investments in custom software development. Plus, many business units now behave essentially like internal “customers”—resorting to external software vendors if they are dissatisfied with the value and service they get from corporate IT.
The growing importance of the software application to the business and the growing challenges associated with the consistent delivery of an excellent software update experience make it clear that every organization needs to give reasonable attention to its software update process.
What does a best-in-class software update process look like?
Given that improvements in your organization’s software update process can make it more successful, then it makes sense to consider what a best-in-class software update process would look like.
Here are eight best practices to consider when examining your organization’s current processes:
- Rationalized, customer-focused requirements process
Every organization should have a structured process in place for gathering input from customers, technical support, sales, marketing, and executive management. Such a process enables the product management team to make informed decisions about what new and/or enhanced functionality to prioritize. Without such a process, important functionality can be inappropriately delayed—while development and delivery resources are inappropriately allocated to less important items.