How Many CTOs?

How can product debt affect a company's ability to innovate?

Short answer

Product debt can significantly hinder a company's ability to innovate by creating a drag on resources and complicating the development process. It often results from outdated or conflicting features that must be maintained, diverting focus from new initiatives.

Product debt can significantly hinder a company's ability to innovate by creating a drag on resources and complicating the development process. It often results from outdated or conflicting features that must be maintained, diverting focus from new initiatives.

Understanding Product Debt

Product debt is a concept that extends beyond the familiar technical debt. As Brad explains, "Ultimately, when we refactor the opacity of undocumented requirements," it becomes clear that product debt involves features and requirements that are either forgotten or poorly documented ▶ 0:00. Unlike technical debt, which is about the complexity of the code itself, product debt is about the features that exist within a product that can slow down innovation and maintenance.

In the episode, Scott illustrates product debt with an example from TaskRabbit, where a special partner required a custom landing page. This setup meant that any changes to the booking experience had to be made in two places, which is a classic case of product debt ▶ 6:45. The need to maintain these separate flows not only complicates development but also ties up resources that could be used for innovation.

The Impact on Innovation

Product debt can stifle innovation by consuming the time and resources that could otherwise be directed towards new projects. Brad points out that maintaining outdated features or contradictory requirements can lead to a significant drag on a company's ability to innovate. He mentions, "you know, you've kind of added all the different special cases," which can make it difficult to streamline processes and implement new ideas ▶ 2:41.

This drag is not just theoretical. The episode discusses how product debt can lead to situations where engineers spend more time dealing with legacy features than developing new ones. Brad shares an anecdote about an old authentication system that had to be replaced, revealing hidden complexities and undocumented requirements that slowed down the process significantly. He recalls, "like all engineers who have hubris, we thought this will just take us two weeks" ▶ 22:02.

Managing Product Debt

Addressing product debt requires a strategic approach. One method is to conduct a thorough review of existing features and determine which are truly necessary. Scott suggests that during a rewrite, companies have the opportunity to eliminate outdated product features, but this process can be fraught with challenges. He notes, "One of the things that you can do what you certainly would need to do if you're going to rewrite it is you would need to say, what do we want this thing to do?" ▶ 26:45.

However, Brad cautions that even with a rewrite, hidden requirements can be overlooked, leading to potential issues down the line. He shares a story about a project where forgotten features became landmines during a modernization effort, illustrating the risks of not fully understanding the existing product landscape. "Make sure you don't forget about buried old feature X," he warns ▶ 12:06.

Balancing Innovation and Maintenance

The challenge for many companies is balancing the need to innovate with the necessity of maintaining existing systems. Brad and Scott discuss the "innovator's dilemma," where the pressure to improve can sometimes lead to decisions that inadvertently increase product debt. Brad admits, "Hey, we've got a good thing going and we want it to go better," but acknowledges that this can sometimes lead to more problems if not handled carefully ▶ 29:54.

A real-world example from the episode involves a company that attempted to modernize its authentication system by adopting a third-party vendor, only to discover numerous undocumented requirements that had accumulated over time. This led to multiple rollbacks and a realization of how deeply embedded these old features were in the system's architecture. The complexity and hidden requirements turned what was expected to be a straightforward upgrade into a prolonged and resource-intensive process.

Strategies for Reducing Product Debt

To effectively manage product debt, companies need to adopt proactive strategies. Regularly auditing existing features and assessing their relevance can help identify which aspects of a product are contributing to debt. This involves not just the engineering team but also product managers and business stakeholders to ensure that decisions align with the company's strategic goals.

Brad and Scott emphasize the importance of communication and documentation. By clearly documenting requirements and decisions, teams can avoid the pitfalls of forgotten features and ensure that future projects are not hampered by the same issues. As Brad notes, "And it makes it every time you go in there, instead of just simply changing the HTML to have a new button that says sign in instead of log in," highlighting how seemingly minor changes can become cumbersome without proper documentation ▶ 9:16.

Conclusion

Managing product debt is crucial for any company looking to innovate effectively. By understanding the nature of product debt and taking steps to address it, companies can free up resources and reduce the drag on their ability to implement new ideas. The conversation between Brad and Scott highlights the importance of being aware of product debt and the impact it can have on a company's innovation capabilities. Through strategic management and clear communication, businesses can mitigate the risks associated with product debt and foster a more innovative environment.