Daitan White Paper The Software Development versus Maintenance Dilemma COMMON MISCALCULATIONS IMPACT REVENUE AND MARKET SHARE

Size: px
Start display at page:

Download "Daitan White Paper The Software Development versus Maintenance Dilemma COMMON MISCALCULATIONS IMPACT REVENUE AND MARKET SHARE"

Transcription

1 Daitan White Paper The Software Development versus Maintenance Dilemma COMMON MISCALCULATIONS IMPACT REVENUE AND MARKET SHARE Highly Reliable Software Development Services Daitan Group 2014

2 The Software Development versus Maintenance Dilemma Common Miscalculations Impact Revenue and Market Share 1 EXECUTIVE SUMMARY: MANAGING RESOURCES TO DEVELOP NEW PRODUCTS WHILE MAINTAINING EXISTING PRODUCTS Once an enterprise software product becomes successful, it typically delivers value to customers for several years. However, in most markets there is a constant need to continue creating new products to stay ahead of the competition. Successful technology vendors end up with a product portfolio that is a mix of new and mature products. Because resource constraints are always present this mix can cause either new product development delays as resources are tied up in product maintenance or negatively impact customer service levels by losing the ability to respond quickly to enhancement requests and/or fixing bugs. This is a major challenge for any software vendor who needs to keep driving innovation in the market while maintaining existing products. Maintaining mature products demands significant engineering resources (40-80% of the total effort over the lifecycle of the product). As companies grow and establish a customer base, engineering groups that spend significant time on maintenance efforts will affect their ability to innovate and bring new solutions and products to market. This paper discusses the subject of outsourcing engineering efforts over the product lifecycle and argues that there are both productivity and financial benefits gained by focusing in-house resources on core innovation while maintenance and sustaining efforts for mature products are offloaded to an outsourcing partner. We will also discuss best practices in executing the hand-over at the right time and in the most effective manner. 2 WHAT DO WE MEAN BY MAINTENANCE AND SUSTAINING? In the context of this document, the engineering efforts directed at creating a new software product are referred to as product development engineering or just product development. Product development is substantially executed as an investment before the product is released and utilizes market insight and technical expertise that is the core of an organization s competence. Maintenance and sustaining is the customer support and engineering efforts that follow the release of the product. There are several different definitions for these terms Daitan Group

3 but they are most often used interchangeably. For the purpose of this paper, we will use maintenance to describe the full maintenance, support and post release engineering efforts for a given software product. The customer support portion of a maintenance program is typically a range of services to assist users and is often organized in levels or tiers to better serve the customer base. The range is a three or four tier system from basic customer issue response in Tier 1 up to Tier 4, which handles the most difficult problems. Beyond support, a complete maintenance program includes repairing of software defects, creating the additional functionality or enhancements often driven by customer requests and updating to comply with changes to the deployment environment (such as new OS, adaptations to customer conditions, etc.). Overall, responsiveness and quality are essential in all aspects of a maintenance program. 3 THE PRODUCT LIFECYCLE: BREAKING IT DOWN After product launch, proactive development continues for a while to complete the pre-launch promised functionality, but these efforts gradually shift towards more development driven by customer feedback. At some point, due to changes in the market (competitive pressures, technology changes, etc.) sales growth flattens and the product reaches its maturity. During this time, the maintenance effort is at its peak providing both support and sustaining engineering services. Industry studies find that maintenance efforts range from 40-80% of the total engineering effort applied over the course of a typical software product lifecycle. Figure 1 - SW Product Lifecycle: Sales vs Development/Maintenance Efforts Daitan Group

4 Meanwhile, most companies strategically shift their efforts and resources into the next generation product. Eventually, sales decline and the process of discontinuing the product begins. The product enters into its end-of-life phase when maintenance efforts are kept at a minimum to adequately support the commitments with the existing customer base. 4 HOW MUCH EFFORT GOES INTO ENGINEERING DURING MAINTENANCE? Based on industry studies, here is an approximate breakdown of where engineering time is usually spent. ENGINEERING EFFORTS DURING MAINTENANCE Improvements, 48% Corrections, 29% Compatibility, 23% Figure 2 - Maintenance Engineering Efforts Improvements Nearly half of the engineering time is spent responding to customer requests for new functionality. Even after a product reaches maturity, with no active additions to the roadmap, customers will continue to request improvements and some of them will be prioritized for implementation. Corrections Slightly more than a quarter of the engineering time is spent addressing potential software defects reported by customers. More than half of this is related to Tier 2 and Tier 3 support and the associated efforts to replicate, isolate, and diagnose these problems with the other half dedicated to fixing the ones that were actually defects that were identified in the field, which includes retesting and releasing patches. Compatibility The balance of the effort is dedicated to updating the software to adapt to changes in the environment (platform and OS versions, changes in interfaces with other systems, managing software updates, supporting new countries, etc.) and to proactively improve software to prevent problems before they occur. Daitan Group

5 5 THE DEVELOPMENT VS MAINTENANCE DILEMMA For technology companies, success is never a static condition. When a product becomes a success, it s time to develop the next-generation product to respond to market changes. Naturally, it is a common desire to have the star team who created the successful product leverage all of the experience gained to develop the next-generation product. But it also makes sense to have this team who knows this product so well to continue into the maintenance phase. A common mistake is to assume that the engineering efforts decrease or cease after the product is launched and therefore the development team can do both new product development and maintenance. Maintenance efforts will fluctuate over the product lifecycle and becomes primarily driven by customer demands (for enhancements and bug fixes). This makes the budgeting and resource requirements difficult to predict. Another key consideration missed by many companies is the varying skills and motivations of developers between the new product development and the maintenance phases. Building a product from scratch involves focus on innovation and risk-taking, the reliance on super-star domain experts, and the use of trial-and-error approaches. Maintaining a successful product involves focus on the customers needs; the reliance on good communication and team collaboration; and the use of processes that ensure quality and reliability. These are very different objectives requiring different skill sets that can easily create conflicting prioritization and essentially delaying new releases and/or decreasing customer satisfaction. Some handle this by adding more developers to the original team. The more experienced developers would focus on the new product, while the new developers help with the development but also take care of maintenance of the existing product. Regardless of the team size, the conflicting objectives between new product development and maintaining existing products fails to create a balanced work effort and inevitably the super stars are diverted from new product development and innovation to add their support on product maintenance. Ultimately, this dilemma impacts anticipated revenue from new products and impedes growth of market share. Daitan Group

6 6 A BETTER SOLUTION FOR SOFTWARE PRODUCT MAINTENANCE A potentially better solution is to let an external provider take over the maintenance efforts once the product matures. Once the hand-off happens, the entire focus of the in-house development team can be on the next product. The experienced outsourcing partner seamlessly handles the fluctuations of demand without causing impact on the new product development schedule. The company wins, the development team is focused on what they do best, and customers get better service. The key benefits are: Leveraging core competence of the development team The roots of the original product success are in the specific technology, market knowledge and technical expertise of the development team. Allowing this team to focus entirely on the development of the next product not only leverages this core competence but also typically aligns with their desires and career objectives to continuously develop and innovate. Faster new product development A focused and motivated team can develop products faster and accelerate innovation. This will produce an optimal overlap between the maturing (and slowing revenues) of existing products with the introduction and ramp-up of new products, positively impacting the financial stability of the company. Better and more cost-effective maintenance efforts Offloading maintenance efforts to an organization whose core competence is providing adaptable, process-oriented support and engineering services provides better and faster response to demand fluctuations and provides a predictable, and lower, annual cost for budgeting and business management. This is true even for companies that have created separate development and maintenance teams internally. In summary, both internal and external teams can focus on what they do best, resulting in faster product development, lower and predictable costs, better served customers and overall better business performance. 7 BEST PRACTICES FOR HANDING OVER MAINTENANCE EFFORTS TO AN OUTSOURCING PARTNER Over the years, Daitan has developed a proven methodology to minimize risks and disruption and maximize the benefits of maintenance outsourcing. Daitan Group

7 7.1 MAKE THE DECISION AND ENGAGE AT THE IDEAL TIME Daitan provides full-lifecycle engineering services, which means we often participate in all phases of product development with our customers including the stage just before the product reaches maturity and working with the client to build and take over the product maintenance. In the chart in Figure 1, there is a point when sales revenues have become flat and the company makes the decision to start efforts on a next-gen product. At this point, proactive new functionality development efforts in the existing product cease. This is the ideal time to engage an external team to take over the product maintenance that includes product support and sustaining engineering efforts. This allows internal teams to be fully dedicated to new product development and to provide predictable and consistent cost and service levels. While engaging the outsourcing partner later in the process will still bring benefits and free up developers to focus on core competences, an earlier engagement is more effective and minimizes disruption to existing customers. 7.2 ASSESS THE PRODUCT At Daitan, we work with you to analyze and assess your technology solution to plan for its effective management. This step typically includes, among other things: Identify the necessary skills and technology domain expertise Identify development tools and environment Design or adapt the test environment to support the product, if necessary Define the hand-over process Execute knowledge transfer 7.3 IMPLEMENT THE CUSTOMER-SIDE INTERFACE Observing your existing infrastructure and operation, we actively shadow your interactions with customers and support organizations to build the capabilities to take them over without disruption. Through strong knowledge transfer processes, we thoroughly document the product and extend the existing knowledge base which is often held with specific individuals. This step typically includes, among other things: Assess and optimize current workflows Deploy the correct resources and people to replicate and improve your support infrastructure Define and measure key performance indicators in your current operations so that we can set the proper service-level agreement levels Daitan Group

8 7.4 PRODUCT MAINTENANCE EXECUTION This is the point where we transfer and take over the product maintenance. This step typically includes, among other things: Re-routing of all support workflows Execution of sustaining engineering efforts 7.5 CONTINUOUS MONITORING AND REPORTING After taking over maintenance efforts, we monitor and regularly report on the performance of the product under management. Thanks to our strong knowledge transfer and change management core competencies, clients can start seeing savings within 4-6 weeks, as we mobilize high offshore staffing ratios to maximize savings. Once we have made the transition, our governance process ensures that we keep meeting our promises to clients. We constantly measure our performance, using firm documented metrics, to demonstrate how well we are meeting our quality, service level, and cost targets - and then use this process as a tool for continuous improvement. The Daitan Maintenance Program not only provides a complete solution for our customers but is also based on our core value to work with each client as an extension of their in-house team, sharing the goals and responsibilities. ABOUT DAITAN GROUP Daitan provides highly reliable software development and maintenance services. We partner with technology vendors to help them develop their next software solution in Telecom, Unified Communications and Cloud/Web Solutions. While this paper focuses on maintenance for mature products, Daitan provides full lifecycle engineering services, from requirements to design to implementation, to automation, testing, and maintenance services. To find out more about what Daitan can do for you, please visit Daitan Group