Back to resources

Balancing Tech Debt and Feature Development

Managing Expectations
Dev Processes

14 September, 2020

Mason Mclead
Mason Mclead

CTO at Software.com

Mason Mclead, CTO at Software.com, delves into how to take care of tech debt while pushing out new features and products.

Problem

We were doing a national rollout and every state required different logic of deployment and different flow of the app. The business wanted to go as fast as possible and get as much reach, as well as legal and infrastructure departments that were pushing for a fast release too. If we didn’t keep up with their pace, we would waste a ton of time and money. The pressure on engineering to hurry up was enormous.

We tried small one-offs with the first three different states and realized that it was going to incur a lot of technical debt and be really complicated unless we would stop for a moment and change how the system worked, make it adaptable for different states and then, roll it out.

Actions taken

We knew we were unable to secure buy-in from the business in the very beginning, so we did the first few states as one-offs. That helped us get a real sense of what types of changes in the system we would have to make.

Then, we started to lobby hard against the business and legal department. On the legal side, we needed them to do research and provide us with documents. On the business side, we wanted them to ensure that everything would be ready for us to put the infrastructure down and roll out in six new states instead of two that we could do with one-offs.

We bartered that deal with anyone involved so that we could take a break from rolling out in order to build infrastructure and consequently, move faster. Luckily, everyone bought into that, we made necessary changes and were able to launch in 20 states in the next couple of months.

The above situation is an example where a large tech debt issue had to be addressed in order to build something the right way. But there are situations, like a more regular cleanup, that never get prioritized and that keep building up over time. Paradoxically, as they build up, it will become harder to get them on the priority list and they get knocked out of a sprint first if something needs to get squeezed.

To make sure that the engineering team would stay happy and be able to work on cleanup, I would build a cleanup into the product. I would layer in a bit of abstraction when pitching to Product -- this thing needs to be done in order for this product to happen -- and stretch it a bit just to get it in there and then deploy it with the product. It will get momentum and emphasis by being part of the product. If you are just trying to sell tech debt cleanup by itself, it would be very difficult.

Lessons learned

  • When you need to take a break and do infrastructure and refactoring work, you should focus on selling the speed that you can get on the other side of it and be able to make a tradeoff with slow now, fast later.
  • When you need to address a problem of ever-emerging cleanup, you should package up a new product plus tech cleanup into one feature release, so that your cleanup gets pulled along with it.
  • Some tech debt can be left to sit aside for a while, but it will nevertheless have a negative impact on your productivity. - Everything that sits somewhere for a long time would be like a bit of sand stuck on your skin -- it won’t bother you but you will constantly feel it. However, it won’t sit still forever; as it grows it can have a negative impact on the morale of the team.
  • There is a people side of tech debt. As a leader of an engineering organization, your turnover rate summarizes how well you are doing. Turnover will most likely increase if tech debt remains unaddressed. If tech debt is slowing you down, good engineers leaving will slow you down further.

Discover Plato

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


Related stories

From Big Tech to Startup: Adding Value From Day 1

19 January

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.

Dev Processes
Company Culture
Impact
Team Processes
Cross-Functional Collaboration
Changing Company
Career Path
Performance
Angel Jaime

Angel Jaime

CPO at yayzy

Tips to Get Back to Work After a Career Break

18 January

Joëlle Gernez, Vice President, Engineering at Pinger, shares her strategies to come back to the tech-industry after a brief 6-years of career break.

Goal Setting
Managing Expectations
Personal Growth
Changing Company
Career Path
Joëlle Gernez

Joëlle Gernez

Vice President, Engineering at Pinger

Knowing When and How to Migrate From the Legacy System

2 January

Chien Kuo, Sr Director of Engineering at Oscar Health, shares how he strategically modernized the legacy system in one of his roles.

Alignment
Dev Processes
Collaboration
Cross-Functional Collaboration
Chien Kuo

Chien Kuo

Sr Director of Engineering at Oscar Health

Managing Expectations: Product Management in a Startup

15 December

Namrata Rao, Senior Manager of Product Management at Salesforce, shares her highest endeavor of working closely with the founder of the company to align the product vision.

Mission / Vision / Charter
Managing Expectations
Internal Communication
Collaboration
Sharing The Vision
Strategy
Cross-Functional Collaboration
Namrata Rao

Namrata Rao

Senior Manager, Product Management at Salesforce.com

The Difficulty in Making Career-Defining Decisions

7 December

Yao Xiao, Director of Algorithm Engineering at Aibee, shares how he decided that he would transition from a well-established organization to a new startup, broadening his scope.

Alignment
Goal Setting
Managing Expectations
Personal Growth
Roadmap
Changing Company
Yao Xiao

Yao Xiao

Director of Algorithm Engineering at Aibee

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.