Plato Elevate Winter Summit has been announced (Dec 7th-8th)

🔥

Back to resources

How to Creatively Juggle Technical Debt and Product Priorities

Conflict Solving
Deadlines
Tech Debt

10 June, 2021

Shruti Venkatesh
Shruti Venkatesh

Engineering Manager at Capsule

Shruti Venkatesh, Engineering Manager at Capsule, talks about what goes on an EM’s head when faced with technical debt and tight product deadlines.

Problem

Working in a fast-paced delivery environment can be pretty exciting and motivating, especially if one enjoys this type of challenge. For one to be successful in such a workplace, it’s essential to learn how to juggle multiple high impact projects, keep a close eye on delivery timelines and prioritise and reprioritize constantly. I recently worked with a team that had a very fast-paced delivery schedule and was responsible for rapid delivery of several enhancements to an internal user facing application.

However, there was a large obstacle in that the codebase was quite clunky in parts and had some suboptimal patterns which needed a good amount of refactoring. This meant that while our delivery timelines were tight, the obtuse nature of the code made it that much harder to stick to them. We definitely needed to invest some time and effort in rewrites, but there was no clarity on what part of the codebase to tackle since almost everything had scope for improvement.

Actions taken

It sometimes happens that teams face conflict between the engineering goals and the product goals, and more specifically, conflict between the Engineering Manager and the Product Manager. The Product Manager, understandably, would like to emphasize business deliverables, while the Engineering Manager would also like to tackle technical debt and enhancements. Tackling these technical priorities are critical to overall system extensibility and stability, as well for developer productivity.

Speaking with our Product Manager in depth about the shortcomings of our system helped get them on board with prioritizing some of the technical work we had planned. Clear outlines of why this needed to be addressed now, and why neglecting some of this work would lead to cascading issues in the future, were helpful in emphasizing the urgency of this effort. We were able to agree on allocating a larger amount of time and effort towards minimizing tech debt in the upcoming quarters.

Once that was sorted, it was time for us to start creating a backlog of tech-debt stories. We refrained from making large unplanned refactors, and instead, created detailed tickets for any non trivial work that needed to be tackled. We then started brainstorming ways to prioritize our tech debt. One of our engineers suggested adding a “pain points” system. For instance, we would rack up the “pain points” on an area of code every time an engineer was slowed down because this code was not optimally written or obtuse. Similarly, any bugs that originated from a suboptimal implementation also racked up the “pain points” for that area of the code. At the start of every sprint, we would prioritize the tickets with the highest number of pain points. This way, we could ensure that the most critical and oft encountered areas of code received the appropriate attention.

The above system was great for smaller code changes, but we also needed to tackle larger refactors and replacing outdated patterns. We started to bake in tech debt and refactors into the scope of new product development. If we had to build a brand new feature that touched an area of code that needed a rewrite, we would try and extend the deadline by a bit and include the rewrite as part of the feature scope. As part of this process, we started taking some additional time before the actual implementation to understand the potential areas for refactor during the discovery phase. We also tried to scope an additional week of buffer time in case the refactor turned gnarlier than expected.

Using our tactics above,

  • We were able to address the most critical areas of technical debt
  • We were able to bake refactors into the scope of the project itself and ensure that we weren’t spending time on costly rewrites that weren’t immediately useful.

Lessons learned

  • As the Engineering Manager, it is essential to have a solid trust-based relationship with your Product Manager. Having a great, transparent relationship with your Product Manager makes all the negotiations and conversations that much easier.
  • In the case of legacy systems, it is sometimes overwhelming to know where to start addressing technical debt. Surface the most problematic areas early in order to get the maximum utility for time spent.

Discover Plato

Scale your coaching effort for your engineering and product teams
Develop yourself to become a stronger engineering / product leader


Related stories

Working From the Ground Up

23 November

Adam Hawkins, Site Reliability Engineer at Skillshare, uprooted an entire product and built it back up again with the help of his team.

Deadlines
Toxic Atmospheres
Adam Hawkins

Adam Hawkins

Site Reliability Engineer at Skillshare

Why Overloading Product Teams Never Work

23 November

Adi Purwanto Sujarwadi, VP of Product at Evermos, shares how he identified the symptoms of his overworked product team and worked towards defining conflicting priorities.

Managing Expectations
Product Team
Deadlines
Stakeholders
Adi Purwanto Sujarwadi

Adi Purwanto Sujarwadi

VP of Product at Evermos

Building trust as a new Manager

23 November

Neelima Annam, Sr Director Information Technology at Outmatch, shares her insight into her growth path of evolving her management style to build trust.

Alignment
Personal Growth
Conflict Solving
Coaching / Training / Mentorship
New Manager
Neelima Annam

Neelima Annam

Sr. Director Information Technology at Outmatch HCM

Overcome a Poor Working Relationship

11 November

Rajesh Agarwal, VP & Head of Engineering at Syncro, shares how he took the time to develop and understand one of his co-workers to drive impeccable business results.

Conflict Solving
Internal Communication
Collaboration
Ownership
Health / Stress / Burn-Out
Rajesh Agarwal

Rajesh Agarwal

VP and Head of Engineering at Syncro

How Data-Driven Products Help Customers and Increase Sales

11 November

Richard Maraschi, VP of Data Products & Insights at WarnerMedia, shares his insight on incorporating data science, AI, and product management to overcome slowing growth of the company.

Product
Conflict Solving
Users
Data Team
Performance
Richard Maraschi

Richard Maraschi

VP Data Product Management at WarnerMedia

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.