A sportan always pays their Tech Debt đ·
- Published on
As the worldâs largest fantasy sports platform with over 100 million users, we at Dream11 always strive to give the best user experience that fantasy sports has to offer. This is especially true when big-ticket sports tournaments such as the Indian Premier League or the T20 World Cup are around the corner and many sports fans eagerly wait to make their dream teams. During such fast-paced sports seasons, it is highly crucial for us to launch releases every week with many new and exciting features and bug fixes. In order to cope with release cycles, developers tend to delay certain necessary work to get the deliverable out on time, resulting in incurring âTech Debtâ.
â Tech debt represents the extra development work that arises when good quality code is compromised for time to market.â
How does Tech Debt impact Dream11?
Pushing out code to time the market is helpful for Dream11âs growth, but Tech Debts have challenging consequences:
- If the designed code/architecture is not standardised, it will require an adequate amount of the teamsâ time and effort, resulting in higher work estimates
- If the code is not properly structured to be easily comprehensible, a developerâs productivity also gets affected.
- Last but not the least, an uncontrollable codebase is a foundation for an inflexible product.
In a highly active fantasy sports platform like Dream11 with over 100 million users, some changes can take place quickly and continuously. Mismanagement of tech debt leads to extended deadlines, giving way to complex structures in the future. When developers start writing code with shortcuts, code smells and unnecessary levels of complexity start creeping up which eventually affects the robustness and stability of the platform.
Philosophy of Paying Tech Debt
At Dream11, we try to map every action or decision to data. But with debt items, this task becomes a bit difficult as it does not have any direct observable impact on business. It affects the developerâs productivity, which is very difficult to define or measure. To understand the impact, trusting the developerâs expertise and feedback becomes our final call.
Tech debts are paid regularly during the development cycle, parallelly along with feature development. We can categorize tech debt into two categoriesâââlong-term and short-term.
Long-term debtsâââThese require a more fundamental change in design or architecture and cannot be done without disrupting the existing functionality of the system.
Short-term debtsâââThese are incurred due to shortcuts being taken for early release, for example, code smells and ignored coding conventions. A good approach for paying off short-term debt is to take them up in the next development cycle.
Six week Debt Period at Dream11
Unlike many organisations, where developers struggle to manage tech debt or even convince their teams to allocate time for it, we at Dream11 understand the importance and assign six weeks every year to clear all the Tech Debts.
This yearly exercise is not just for the tech team but is conducted at an organizational level, where each club (a group of people associated with the same domain, for example, iOS club, Product club) spends this allocated time to improve on club level inefficiencies. This entire period does not involve any business-related tasks, that is, no feature development. So, clearing the tech-debts must be achieved within the specified six-week period so we donât get behind on the tasks to follow after this activity.
The first and foremost step towards managing debt is prioritization. Developers are completely free to choose what debt items to pick, based on the impact of the debt.
This six-week period involves focusing on improving the code in a way that the developerâs efficiency is improved post this period. Code refactoring, adding abstractions, and modularization are some of the key focus areas during this time. Re-writing manageable and scalable solutions for already developed features helps in keeping the legacy code up to speed with new conventions.
Tech debt also adds to the testing strain, as when we have messy code, it leads to some missing edge cases. Test suites and automation help us improve the maintenance quotient and reduce the strain during the QA (quality assurance) process.
We also focus on enhancing documentation around architecture design, requirements, verification, and maintenance or help guide during this period. This exercise helps in our onboarding process to give a better understanding of the underlying technology.
The development environment plays an important role in working on a project in an optimal way. If there are any repetitive tasks that an engineer has to go through in every cycle, this tends to adversely affect productivity. Integrating tools and automation services that are manageable and built to scale, helps in improving the developersâ efficiency.
Conclusion
We know that it is not possible to completely avoid tech debt. But, this yearly exercise helps us at Dream11, to keep it well under control and not have its negative outcomes affect our business growth.
The tech debt management period is a critical time at Dream11. It eventually helps in improving the work environment and engineers feel satisfied with the quality of work they produce, implying a better product as an outcome.
Most important of it all, is we try to ensure that the occurrence of tech debt decreases with time and our efforts towards managing them remain minimal in the future.
To know more about how we keep things running at Dream11, stay tuned!
If you love solving tech related challenges like we do, join us at Dream11 by applying here.
*Sportan is someone who works at Dream11. We hate to call ourselves employees and prefer a warrior reference just for fun!â