Controlling Your Technical Debt
9 July, 2018
I currently work at Xello as the VP of Engineering. I have around 40 engineers, spaced out across six cross-functional teams. However, a while ago, I found that all of my teams were taking on too much technical debt, and we weren't sure why the debt was accruing.
Our first step was to try and work out the cause of the technical debt. A lot of it was based around requirements and not having to write them before features were developed. Teams were moving too quickly in the development phase and the product owners weren't properly describing all of their products' requirements. Not everything would be complete by the time the features were released, and there were bugs in the features. These were then getting added to our backlog. Our next step was to identify technical debt and to determine what it was. There was a big mix-up in terms of what was an actual bug that happened after development, what things were missed during development, and what decisions were made during the development stage that resulted in accrued debt. We started using Jira to track debt and then created a technical debt epic. To avoid the debt getting missed up with bugs and other issues, we tagged them with technical debt in order to give visibility about what our technical debt was, how much we were taking on in each sprint, and when it was occurring. We also worked on improving our testing in order to reduce our debt. By using better unit and integration tests and adding automated testing, we were able to more readily catch debt during the development phase. We also made time during each sprint to manage the debt. During this time, we would pay down debt during each sprint by taking in our backlog of technical debt tickets. Finally, we started focussing more on our requirements to ensure that we were getting the right requirements and that everybody understood the requirements coming from product owners and UX teams before we started developing.
Make sure that you track your technical debt independently of anything else. In addition, track how much debt you take on during each development cycle. This will allow you to track debt and to prevent it from accumulating over time. No team will get away fully from technical debt. However, if you aren't tracking it, it can spin out of control. Because of this, having the right metrics around debt is important.
Shridharan Muthu, VP of Engineering at Zoosk, describes how he quickly agreed to adopt new workflows, a mistake he later regretted, and how he handled the situation by spending the time to course correct and taking a stab at making things easier for his team.
VP of Engineering, Backend Applications at Zoosk
Namrata Ganatra, CTO at Lambda School, delves into all aspects of helping engineers transition from an IC to a manager role.
CTO at Lambda School
Pierre Bergamin, VP of Engineering at Assignar, outlines some useful tips for decoupling releases from deployment and increasing deployments by a huge factor, speeding up reverts and planning releases in a better way.
VP of Engineering at Assignar
Murali Bala, Director, Software Engineering at Capital One, outlines how he applied a root cause analysis to fix a recurring outage of their website.
Director, Software Engineering at Capital One
Tim Olshansky, EVP of Engineering at Zenput, explains all the challenges of migrating legacy software to the cloud emphasizing the importance of identifying the riskiest things first and applying small, incremental changes.
EVP Product & Engineering at Zenput
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.