Reducing significant inherited technical debt
16 April, 2018
When inheriting the team and codebase of a start-up with a product that has going through many transformations to find product-market fit, I discovered quickly that there was a ton of technical debt, including silent failures, huge performance problems, outages, and regressions. The CEO was very used to getting what he needed at a moment's notice, and this merely added to the problem.
The most important immediate action I took was to give visibility to the CEO of the culture that had been created and the tangible, negative impact of him being used to getting what he wanted at a moment's notice. By educating him and the rest of the executive team in a very tangible way, I was able to get their commitment to change their behavior by changing the process of how things were requested and serving as the "shield" for the team whenever the CEO wanted something new. With that fire out, I focused on giving into the codebase deeply, working with the team to identify new or existing technologies that could be used to improve the current situation. From this, we created a "Technical Debt Roadmap" which identified all of the things we could do to make the situation better, prioritized based on impact and time-to-implement. We then committed about 20% of all working time to items on this roadmap and over many months focused on getting this done. Aside from this, we committed to post-mortem every issue that came up, particularly regressions and outages. We also made it a requirement that no post-mortem could be done without requiring a process change as part of the post-mortem itself -- it was never enough to say "Person X should do Y differently next time", particularly because humans are imperfect. Instead, we would require adding a process, whether it's an automated test, a new documented process to follow, or something else. While it may seem like this could lead to a lot of bureaucracy, in fact it only led to preventing the same mistakes from happening again, and it kept us honest with exactly what was required to maintain all of our existing features and functionality.
When inheriting a new team or codebase, it can be easy to focus on the "symptoms" of technical debt, but if the focus is on fixing these symptoms without addressing the core problem of how culturally the technical debt is accrued, you will only ensure that this debt will come back overtime. Unfortunately, difficult conversations are often necessary, as it may require behavior change of very senior members of the organization to change some of these bad habits. In addition, it's important to find a way to still innovate quickly and accrue some technical debt along the way if it's what is in the best financial interest of the company.
Scale your coaching effort for your engineering and product teams
Develop yourself to become a stronger engineering / product leader
We doubled the Engineering team from 54 to 109 full-time employees. We expanded our team footprint to include: Brazil, Portugal, and the US. We evolved our road mapping and planning processes from two Product squads to eight Product squads, in alignment with PM areas of ownership.
VP Engineering at Trustly Group AB
Yang Wang, Engineering Manager at Bond, shares how diligently she transitioned from a large company to a series of startups, all balancing between the role of being a working mom.
Engineering Manager at Bond
Yang Wang, Engineering Manager at Bond, shares how she coached several women engineers in her team to boost confidence and help them grow in their careers.
Engineering Manager at Bond
Angel Jamie, Chief Product Officer at Yayzy, recalls his transition from a well-established tech company to a sustainability startup, and the major differences he experienced.
CPO at yayzy
Nani Nitinavakorn, the Sr Product Owner at Revolut, describes how she keeps learning hard skills to increase motivation and respect her team.
Sr Product Owner at Revolut
You're a great engineer.
Become a great engineering leader.
Plato (platohq.com) is the world's biggest mentorship platform for engineering managers & product managers. We've curated a community of mentors who are the tech industry's best engineering & product leaders from companies like Facebook, Lyft, Slack, Airbnb, Gusto, and more.