Managing Resources between Mature and New Product Development
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 existing 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.
There are both productivity and financial benefits gained by focusing in-house resources on core innovation while maintenance (or sustaining) efforts for mature products are offloaded to an outsourcing partner.
The Development vs Maintenance Dilemma
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, especially the engineering efforts.
“The engineering efforts required will go down after the product is launched.”
While maintenance efforts may fluctuate, such as in the initial high volume of requests from customers or intermittent changes to OS environments, the problem is that they are often underestimated.
Maintenance efforts range from 40-80% of the total engineering effort for a typical software product lifecycle.
“Why doesn’t the development team want to support it?”
Skill sets and motivations between the new product development and the maintenance phases vary greatly and not many are suited for both.
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.
”Let’s handle this by adding more developers to the original team.”
Regardless of the team size, the conflicting objectives between new product development and maintaining existing products fails to create a balanced work effort which ultimately impacts revenue and market share.
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.
To read more about this challenge and to see a discussion on maintenance options, download this white paper, “The Software Development versus Maintenance Dilemma: Common miscalculations impact revenue and market share“.