Whilst technical debt and innovation take place side by side, there are other sources of challenges to consider in order to achieve good product management. You might wish to deliver new things to your clients while the developers wish to design new features. The QA section might be all pepped to test the new specifications, and the marketing and sales team are all pumped up to speak about the new features in their promotional campaign. In short, while the end is to deliver a quality product to your customers, there are too many things to consider and take care of before you can do so.
With the addition of a new feature, along with it comes a complexity expense. It is yet another thing to be added to the testing matrix. It is another inclusion which can either enhance or set-back dependencies. It is another addition which requires maintenance and could be a resource of tech debt in the future.
Complexity cost is the debt that occurs by complication of technology or features while solving problems. An app which performs twenty tasks is tougher to re-factor in comparison to the app which does one thing. Thus, changing of code in this will take longer. Often complexity is a basic expense but only companies which completely internalize the idea can hope to secure such spending. With the maturity of the product, new functionality calls up for a higher risk. When you aren’t just improving a present item, you’re kind of adding up a new widget which can bring down the value proposition, bug up your sales exertions, confuse users and suck sources away from the basic elements of your app.
And, when there is this natural tendency to just add features, it can easily cause feature bloating.