How Many CTOs?

How can engineering leaders effectively manage technical debt in a startup environment?

Short answer

Effective management of technical debt in startups requires setting clear priorities, fostering a culture of accountability, and ensuring alignment between engineering and product teams. Regularly reviewing root cause analyses and incorporating technical debt resolutions into the development schedule are crucial steps.

Effective management of technical debt in startups requires setting clear priorities, fostering a culture of accountability, and ensuring alignment between engineering and product teams. Regularly reviewing root cause analyses and incorporating technical debt resolutions into the development schedule are crucial steps.

Prioritizing Technical Debt

In a startup environment, technical debt can accumulate quickly due to the rapid pace of development and the need to deliver features swiftly. Greg Conklin emphasized the importance of identifying patterns in technical issues and addressing them systematically: "Over time are you seeing a pattern here and is there a way for you to look at that as a leadership team?" ▶ 0:00. This involves setting clear priorities and making technical debt resolution a non-negotiable part of the engineering process.

At 98.6, a telemedicine startup, Brad and Greg discussed how they tackled technical debt by establishing a recurring leadership meeting to review root cause analyses (RCAs). These meetings were not just about identifying issues but also about deciding on actionable steps to prevent future occurrences. Brad noted, "We read the RCAs and this is what it said. The database is three versions past, you know, the latest version or whatever" ▶ 16:15. This approach ensured that technical debt was addressed promptly and systematically.

Creating a Culture of Accountability

A crucial aspect of managing technical debt is fostering a culture where accountability is shared across the team. Brad and Greg highlighted the importance of creating an environment where team members feel empowered to identify and solve problems. At 98.6, they implemented a system where engineering managers were responsible for scheduling planned outages and informing stakeholders, which Brad found to be a new level of empowerment: "They are empowered to make that decision" ▶ 4:10.

However, Greg pointed out that a culture overly focused on avoiding blame can have unintended consequences. He shared an experience from Dropbox where the term "blameless retro" was replaced with "egoless retro" to encourage more open and honest discussions about what went wrong. This shift allowed for a more productive analysis of technical issues without fear of retribution, ultimately leading to better solutions.

Aligning Engineering and Product Teams

Aligning the priorities of engineering and product teams is essential for effectively managing technical debt. At 98.6, this alignment was achieved by involving product leaders in the technical debt review process. Brad explained that it was important to ensure product managers understood the impact of technical debt on the overall product quality and reliability. This collaborative approach helped in making informed decisions about resource allocation and prioritization.

Greg noted that having clear expectations and standards, such as performance benchmarks, helped in setting a baseline for product quality. He mentioned the significance of setting non-negotiable performance standards early on: "It's non-negotiable that it is this performant, right?" ▶ 32:43. This clarity helped in aligning the efforts of both engineering and product teams towards a common goal.

Implementing Effective Processes

Implementing effective processes for managing technical debt involves regular reviews and adjustments. Brad and Greg discussed the importance of having a structured process for reviewing RCAs and ensuring that the outcomes are prioritized in the development schedule. This involves not just identifying technical issues but also understanding their root causes and potential impact.

Greg emphasized the need for setting clear SLAs for resolving technical debt: "The outcomes and the to-dos from a post-mortem are priority zero, and you can put an SLA around that" ▶ 18:33. This approach ensured that technical debt was not sidelined but was actively managed as part of the development process.

Conclusion

Managing technical debt in a startup environment requires a proactive approach that involves setting clear priorities, fostering a culture of accountability, and ensuring alignment between engineering and product teams. By regularly reviewing root cause analyses and incorporating technical debt resolutions into the development schedule, engineering leaders can effectively manage technical debt and maintain product quality. As Brad and Greg's experiences at 98.6 demonstrate, these strategies are crucial for navigating the challenges of technical debt in a fast-paced startup environment.