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!”

Related Blogs

Experimentation at Dream11: Chapter I - Intelligent Traffic Routing (ITR)
At Dream11, experimentation runs deep in our DNA. We believe in building a culture that gives Dreamsters opportunities to experiment, fail and learn. In this blog, we deep dive into our journey to optimise payment success rates. We’ll touch upon the challenges we faced, the solutions deployed and the mathematical underpinnings behind our approach. Join us as we delve into the world of non-stationary bandits and how they've helped us maximise the success rate of payment routing.
December 13, 2023
Here’s how Dream11’s Director of Engineering strives to provide world-class user experiences
In our #BeyondTheAlgorithm series, we dive into the heart of the action to capture the success journeys of our Dreamsters. In our second edition, we capture our Director of Engineering - Vinita Miranda's inspiring journey from a Java Developer to a Mobile App expert at Dream11.
October 3, 2023
Player Pricing
With Dream11 hosting around 10,000+ matches every year on its platform, have you ever wondered what all goes behind hosting these matches? It starts from deciding the match to host, generating the credit of players (keeping the user’s perspective in mind) and taking the match live - the whole picture is much bigger. In this blog we will take you through the whole process of assigning credit to players for individual matches, what data goes behind it, what were the considerations for automating the process and how through data driven intelligence this automation was achieved. We will also discuss the benefits of doing this automation from operational and business POV.
June 21, 2023