Technical Debts & Time to Market: What should you trade off?

Technical depts and time to market

Technical Debts & Time to Market:
What should you trade off?

In the world of digital transformation, Time-to-market (TMT) is a crucial metric for identifying the success of a project or service. Most organizations try to launch their products as soon as possible to become the market champion. The development team always faces high pressure to deliver a product quickly. At this time, technical debts can arise, creating long-term problems not only for the team but also for the company. So, what direction should you trade off between technical debts and time to market?

Technical Debt and Time to Mảket

Before delving further into the analysis, it is important to understand the definition of Technical Debts and Time to Market.

Technical Debt refers to the cost of maintaining and updating poorly structured, useless, redundant, or poorly written code, sometimes called “Cruft,” which arises due to time constraints during development time. This “Cruft” leads to difficulties in maintaining or modifying the code and creates long-term problems for the development team when adding more features such as bug fixing, deployment, and testing. Additionally, Technical Debts might also affect user experience as it can cause to the slow performance, crashes, security vulnerabilities which impact user satisfaction and retention rates.

Time to market, on the other hand, is an indication that illustrates the cycle time from the beginning to release. This indicator is very important for companies to stay competitive and meet customer demand. Customers are primarily concerned with product usage and functionalities rather than the internal product structure, architecture, or quality. Therefore, when rushing to release a product, the development team may not have time to focus on quality, resulting in technical debts.

Though the technical debts can help companies to experiment with new features, get feedback from early adopters and iterate quickly, these can slow down development and create problems in the future.

Now, the question arises: “How to balance these two metrics?” There is no well-defined answer to this question, and it really depends on the situations and company strategic goals. However, at Trustify Technology, here are what we consider while working with our clients:

1.     Product backlog prioritization:

It is crucial to have well-prioritized product work items with clear goals and milestones. By focusing on the most important features, we can quickly deliver a minimum viable product (MVP) or minimum marketable feature (MMF) while minimizing technical debts.

2.     Continuous Integration:

Product Backlog Prioritization
Figure 1: Prioritization Technique

Frequent code integration/merge can reduce code conflicts, address early code errors/mistakes, and have better control the code impact by using some Code Quality Assurance tools like SonarQube to collect and analyze source code.

3.     Continuous Testing:

We invest in automation testing by leveraging our Automation Test Frameworks that allow us to quickly create/develop automated test cases and tie up with any CI/CD pipeline. Continuous Testing helps us to identify issues early from the customer’s perspective/view and reduce the risk of technical debts accumulating.

4.     Always have room for technical debts:

We understand that even a high-quality and performance development team can always have “Cruft” in their development practice, and instead of avoiding it, we proactively plan for it. By acknowledging the fact of technical debts, we allocate the effort to address them while developing the feature in parallel.

5.     Code quality standard:

Besides the speed of the product release, we also take a serious step in the code quality standard by defining a well-structured, maintainable code guideline and organizing training for our developers. This helps us to reduce the risk of technical debts accumulating and make it easier to identify issues.

Code Standard
Figure 2: Code quality checklist

Conclusion:

We acknowledge the existence of Technical Debts in Software Development and plan how to deal with them rather than trying to avoid them. There is no one-size-fits-all answer to the question of what to trade off between technical debts and Time to market. However, by prioritizing product items, applying the best practices in software development like continuous integration, continuous testing, as well as making a reservation for technical debt correction/fixing, we believe it is possible to balance these metrics well and successfully release the product on time.


Leave a Reply

Your email address will not be published. Required fields are marked *