Subscribe
& more

Episode 04

Do We Want A World Without Technical Debt?

Compiler

Show Notes

Software development teams often reach a crossroads. Should they perform maintenance and address bug issues, or add new features to satisfy users? The former isn’t as exciting, but sometimes the most important work is invisible to those who reap the benefits.

For now, the project has been released, and everyone wants to celebrate. But there’s an elephant in the room, one that teams can ignore—at least, for a while. We unpack the concept of technical debt, and wonder if there is a world where it doesn’t exist.

Transcript

00:04 - Kim Huang

Brent, hello.

00:05 - Brent Simoneaux

Hi.

00:06 - Kim Huang

I have something to ask you.

00:08 - Brent Simoneaux

Okay.

00:09 - Kim Huang

What do you think of when you hear the term technical debt?

00:13 - Brent Simoneaux

Okay. So one, I don't know what it is, but if I had to guess, it is technically debt? I don't know. Like, is it debt?

00:26 - Kim Huang

It's kind of not the way we understand debt, but yes, it is a type of debt.

00:32 - Brent Simoneaux

Debt to me is like a financial term, right? So that's immediately where my mind goes, is like financial debt. But I'm trying to think through right now what that would mean in technical terms. What would technical debt be?

00:48 - Kim Huang

Do you want me to define what this is in my own words, or...

00:51 - Angela Andrews

In your own words, yes. Let's hear what technical debt is.

00:56 - Kim Huang

Sure. Technical debt is the cost of delaying necessary work on a project so that you can hit your milestones and you can release things on time. Angela, I think you might be familiar with technical debt, right?

01:12 - Angela Andrews

Familiar with it? I've created some of it. So yes, I'm pretty familiar with technical debt. It's the by-product. It's just one of those things that happens when you're moving things forward. Yeah, it just happens.

01:25 - Brent Simoneaux

So like not at all what I thought it was.

01:27 - Angela Andrews

It has nothing to do with your FICO score. No, not at all.

01:30 - Brent Simoneaux

No, okay.

01:32 - Kim Huang

It is quite terrifying though. Right? The term technical debt, there's something about it that sounds very ominous.

01:38 - Angela Andrews

For sure.

01:39 - Kim Huang

So today I wanted to dive into this term, because I didn't know what it meant either when I first encountered it. When I started digging and found out more about it, I wanted to know if there was the possibility of an industry being free of technical debt. Is that something that is even possible? And if we could do it, would it be a good thing? I wanted to find out. And if you're down, I can tell you what I've learned.

02:07 - Brent Simoneaux

I'm down.

02:08 - Angela Andrews

I'm down. Yeah. Let's figure it out.

02:10 - Brent Simoneaux

Let's do it.

02:17 - Angela Andrews

This is Compiler, an original podcast from Red Hat.

02:22 - Brent Simoneaux

We're your hosts. I'm Brent Simoneaux.

02:25 - Angela Andrews

And I'm Angela Andrews.

02:26 - Brent Simoneaux

We're here to break down questions from the tech industry.

02:30 - Angela Andrews

Big, small, and sometimes, strange.

02:33 - Brent Simoneaux

Each episode, we go out in search of answers from Red Hatters and people they're connected to.

02:40 - Angela Andrews

Today's question: Do we want a world without technical debt?

02:47 - Brent Simoneaux

Producer Kim Huang is here to help us out.

02:50 - Brent Simoneaux

All right, Kim, where do you want to start?

02:55 - Kim Huang

Well, let me just start with a little bit of a thought exercise.

02:56 - Brent Simoneaux

Okay.

02:59 - Kim Huang

So, let's imagine that the three of us are a development team. Like we're building software, right? Okay.

03:09 - Brent Simoneaux

Angela's in charge.

03:11 - Kim Huang

Angela is in charge 100%.

03:13 - Angela Andrews

Ugh, okay.

03:14 - Kim Huang

And we're getting around to... So this is after our initial release. So version 1.0 has gone out and now we're getting together to figure out what to do next. Brent, you might be concerned more about bugs and internal issues and optimizing the experience, making the things that are already there better.

03:33 - Brent Simoneaux

Mm-hmm (affirmative).

03:33 - Kim Huang

But Angela might be concerned about new features and functionality. Things that customers want.

03:40 - Angela Andrews

Right.

03:41 - Kim Huang

So because those two things don't necessarily go in tandem and there is an immense pressure to deliver new features, that part receives priority. Angela wins, and then the technical debt that was already there starts to increase.

04:01 - Angela Andrews

You want to ship it as fast as possible. Ship it.

04:03 - Brent Simoneaux

Get it out the door.

04:04 - Angela Andrews

But you do have to worry about the other stuff, too.

04:07 - Kim Huang

Right.

04:10 - Brent Simoneaux

So I'm just going to say this: technical debt sounds bad. Like, it sounds like it could be really bad.

04:17 - Kim Huang

I thought the same thing. So I wanted to speak to someone who had a good idea of how technical debt really works.

04:27 - Tramaine Darby

I am Tramaine Darby and I am an engineering manager in the products and technologies division.

04:35 - Kim Huang

So, the interesting thing that she says about technical debt is that it's not good or bad. It just exists.

04:41 - Tramaine Darby

Yeah. Technical debt is generally talked about as something that needs to be cleaned up or a mess that someone has made or something that is just not quite right. I think that's just a slightly wrong way to think of it because it's not necessarily bad or it didn't come to be because of someone doing something wrong.

05:03 - Tramaine Darby

It's really just something that is done because you're trying to move fast and you're trying to get things out and it's just not quite complete or the whole picture of what we need to deliver. I think of it a lot like if you're cutting trees, sometimes you have to slow down and sharpen your saw. So it's all those things that make it better to deliver in the long term.

05:28 - Angela Andrews

That is actually a really good analogy because you're actually doing the thing, but sometimes you do have to stop and assess and again, sharpen your tools, whatever those tools may be, because otherwise you really can't move forward without it.

05:44 - Brent Simoneaux

Yeah. And I will say what Tramaine was just saying about "It's neither good nor bad, it just is..."

05:50 - Angela Andrews

Mm-hmm (affirmative).

05:52 - Brent Simoneaux

That sits a little strange with me because I think that, like I was saying before, debt has a negative connotation to me. So I'm kind of fascinated by this idea that technical debt, it just is.

06:05 - Angela Andrews

I mean, the choice of word itself kind of makes you want to cringe a little bit, right? Because language matters. That word, it makes people feel a certain way. And especially if you don't know exactly what technical debt is, you're going to assume that it's something negative because that's what you liken it to. So fortunately, or unfortunately, it's one of those things that exist.

06:28 - Brent Simoneaux

Yeah.

06:29 - Kim Huang

I mean, the way that I look at it is this: Yes, the word debt does add that negative connotation to what we're talking about without context, right? And also, debt is all about how you manage it, right?

06:45 - Tramaine Darby

People often think that in order to be productive, that you always have to be cranking out new features, but I kind of go back to that cutting trees analogy, right? You'll be productive in the short term, but if you don't stop to sharpen that saw, your productivity is going to reduce over time. So it really is important to address that gorilla in the room on a regular basis, so you don't fall into the trap of having a dull saw, thus in the longterm reducing your capability to actually be productive.

07:21 - Angela Andrews

What usually gets left out, and this is just one scenario where you're working on a project and you're trying to plan forward. You're trying to cross your T's and dot your eyes, you're doing your testing, you're doing all of these things. And you're so concerned about moving this forward, this project forward, this sprint forward, what usually tends to fall behind is the small things that we don't really think about, like documentation, or how are we optimizing this? Or how are we securing this? You know, those are not little things, but they kind of tend to fall down because you're really trying to move something forward.

08:03 - Angela Andrews

And in Tramaine's analogy, when she's talking about, sometimes you have to stop and sharpen your tools, that's when you have to go back and say, "Okay, let's right this ship. Let's make sure that we bring our debt along." You know what I mean? To bring it into the forefront and address it.

08:21 - Brent Simoneaux

That's super interesting, Angela, because I think what I'm learning from you right now is that the choices that we make while we're building something, they're often small choices. It's a lot of really, really small things that add up over a lot of sprints or a lot of months or a lot of years. And if you're not really paying attention to it, one day you might look up and think, "Oh my God, we have all this debt." You know? We, this big pile of debt now, where did this come from?

08:54 - Angela Andrews

Exactly. How do we address it?

08:58 - Kim Huang

The other thing I wanted to talk about, because Angela, you mentioned documentation, right?

09:03 - Angela Andrews

Yeah.

09:03 - Kim Huang

So Tramaine talked about how documentation can sometimes be a very unanticipated, and sometimes, well, in her opinion, the ultimate in technical debt.

09:14 - Tramaine Darby

As soon as you produce a document, it's almost out of date as soon as you put it out, right? So anytime a bug's fixed or an enhancement or just any general change to software is not reflected in that documentation, it just diverges from what the as-built software is.

09:35 - Angela Andrews

But you can't really get around that. You just have to kind of stay in front of it. So again, as the end user, who may need to rely on this documentation, what are you doing? Because it hasn't come along. It hasn't met you where you are. So you're not getting the value out of it because that debt exists. And it's now starting to impact you as well.

09:58 - Brent Simoneaux

So talking to Tramaine, Kim, what kind of struck you about that conversation?

10:02 - Kim Huang

I was completely surprised.

10:06 - Kim Huang

I didn't imagine that something called technical debt could just be a by-product. I thought it was something that would be a little bit more, I don't know... nefarious.

10:16 - Brent Simoneaux

Yeah. I came into this conversation with a lot of negative connotations of debt. Like, "Oh, we have this debt, whose fault is this?" You know, like who do I point my finger at?

10:28 - Angela Andrews

I think that is a really interesting point. I mean, it is a part of doing business. So you don't have to assign it any feeling one way or the other, because it's not going anywhere. It's just there.

10:41 - Brent Simoneaux

I feel like this is such a, I don't know what the word is, like a...

10:44 - Angela Andrews

Academic?

10:45 - Brent Simoneaux

Academic, maybe. No, I mean, I was going to say it's such a peaceful way of looking at the world. Like it's neither good nor bad. It just is. Like it just exists. We don't have to assign a judgment to it or a label.

11:02 - Angela Andrews

If all things could be that way, right?

11:04 - Brent Simoneaux

Yeah, right?

11:09 - Kim Huang

I spoke to another person who had a little bit more of a positive outlook on technical debt.

11:18 - Sherard Griffin

Hi, I'm Sherard Griffin and I am the director of AI services at Red Hat.

11:22 - Kim Huang

So I was really happy that he chose to talk to me. He was really interested in the subject of technical debt.

11:28 - Sherard Griffin

I actually love this topic because a lot of times, when you are kind of on the bleeding edge of things, you know that you're not going to have all the answers for how technology needs to fit together. And in this case, what we do with AI in ML, in machine learning, it's such a rapidly changing environment. It's inevitable that a huge chunk of our code base will have technical debt.

11:54 - Kim Huang

He says that technical debt first shows up, and he was talking about from like an internal perspective, when people are getting together in a room and saying...

12:07 - Sherard Griffin

"You know, we can, we can shoehorn this in." And it's kind of, we're taping things together here, but we should really rethink that.

12:09 - Kim Huang

It's here that really, the chief driver in the software development process comes up again and again, and that's time.

12:17 - Brent Simoneaux

Yeah.

12:18 - Kim Huang

There's never enough time...

12:19 - Angela Andrews

Never enough time.

12:21 - Kim Huang

...to fit in all of the work that needs to be done.

12:27 - Kim Huang

So the technical debt, it kind of has to exist because there's timelines and there's deadlines to meet and trying to get things out to market.

12:37 - Angela Andrews

Yeah. Like imagine what your timeline would look like if you had to address all of the innovation and all of the moving forward, and then you had to bring those other things along with you. Nothing would ever get done.

12:50 - Sherard Griffin

One of the things that we always have to measure is, how much is the technical debt impacting our ability to hit that timeline? Getting code out the door? Do we want to make our deadline or clean up our code?

13:07 - Brent Simoneaux

Yeah. I think what I'm hearing from Sherard and from you, Kim, is this fundamental tension between innovation and maintenance.

13:17 - Kim Huang

Yeah.

13:18 - Brent Simoneaux

Is that right?

13:19 - Kim Huang

Yeah. And the added dimension to that is competition. If customers aren't getting what they need with you, they're going to go to someone else that's going to give it to them.

13:33 - Brent Simoneaux

Yeah. And this image that Sherard brings us of people in a room, having a discussion about how to spend their time... I've been in these rooms before and I think we all know what this feels like. There can be pressure from the rest of the business. There could be pressure to innovate, right? The allure of the new feature, the allure of producing something shiny is strong, right? There is a will toward newness. And it's really hard to focus on the maintenance, you know? Because that stuff is not as exciting.

14:13 - Kim Huang

And customers can't really see it.

14:14 - Brent Simoneaux

Yeah.

14:15 - Kim Huang

So, Angela, what do you think? Does this correlate with any of your experience?

14:19 - Angela Andrews

This is true. You only have a finite amount of time to get things done. So you have to prioritize those things and you do have to be mindful that there are other folks that are chomping at the bit just like you. Your competition is out there trying to take your spot.

14:35 - Angela Andrews

So you really do have to find that balance, making sure that you're being in the forefront. But what about the stuff that really matters just as much but isn't as pretty or shiny? You can't forget about it.

14:50 - Brent Simoneaux

Yeah. So what I'm thinking about right now is this concept of time and decision-making. Like, as you're making a decision about, and I'm going to be really over-simplistic about this, but innovation and maintenance, it's not a binary choice, right? It's not, "We're going to do 100% innovation and 0% maintenance." There's a decision to make there of like how much time are we spending on something new and how much time are we spending sharpening our tools.

15:21 - Kim Huang

That's a really good way of putting it. And I certainly hope that it's not 100%, one or the other. I don't think that zero-sum development would work out very well in either direction.

15:32 - Brent Simoneaux

But you know, those are hard decisions to make. I mean, I would guess. Is that right? Angela, does that ring true to you?

15:38 - Angela Andrews

Yeah, so it really is a fact of life. Someone has to make the decision of what's important, how fast we're moving, what we're going to do, but you can't forget about the other stuff. So there has to be someone striking this balance and making sure that innovation happens, but you're handling the other stuff, as well.

16:01 - Brent Simoneaux

I want to return us to today's question. Do we want a world without technical debt? What do you think, Kim?

16:13 - Kim Huang

I don't think so. If there was no technical debt, then things would just stay in development for a long time and deadlines would be missed, things wouldn't launch and customers would go without their needs being met.

16:26 - Brent Simoneaux

I guess the next question is like, is it possible to have a world without technical debt? I think what we're learning is no, right?

16:34 - Angela Andrews

You know what, the more I think about it, the more I think that that world can't exist. I mean, think of the times that we're living in. We're living in a world where products and services are shipping so much faster and that innovation has a cost.

16:49 - Angela Andrews

So we're bound to have technical debt, no matter what, it's just here to stay. Remember the days when it would take a year, 18 months for a project to come out and you would only ship maybe once a year or every 18 months? Well think about the other 364 days, you were literally spending the rest of the year trying to fix and maintain and address bugs and tune and optimize. And then somewhere along the line, you'd have to do it all over again. I don't think that world exists.

17:21 - Brent Simoneaux

It sounds like from what you were just saying, Angela, that we might even be looking at a world with more technical debt? And if there's no getting rid of it, I'm really wondering like, how do we handle it? How do we manage technical debt?

17:38 - Kim Huang

That's a good question. And I do not feel qualified to answer it. There's a lot of different approaches and opinions about technical debt out there.

17:49 - Kim Huang

What I really want is to hear from the people that listen to this show.

17:55 - Angela Andrews

I think that's a really good idea, Kim.

17:58 - Kim Huang

If you have dealt with technical debt, if you have experience with technical debt, we want to hear from you.

18:03 - Brent Simoneaux

Yeah. We really want this show to be a conversation. And so I would love to come back to this topic on a future episode and let you know what we have learned from all of you.

18:16 - Angela Andrews

So, okay, listeners, how do you handle technical debt? We want you guys to hit us up on Twitter and Instagram at Red Hat using the hashtag, "compiler podcast." You can also hit me up on Twitter at "Scooter Phoenix." I would love to have a discussion about this with you.

18:41 - Brent Simoneaux

That does it for this episode of Compiler.

18:44 - Angela Andrews

Today's episode was produced by Kim Huang and Caroline Creaghead.

18:49 - Brent Simoneaux

Victoria Lawton makes sure that we slow down and sharpen our saws when needed.

18:55 - Angela Andrews

Our audio engineer is Kristie Chan.

18:58 - Brent Simoneaux

Special thanks to Shawn Cole.

19:00 - Angela Andrews

Our theme song was composed by Mary Ancheta.

19:04 - Brent Simoneaux

Big, big thank you to our guests, Tramaine Darby and Sherard Griffin.

19:09 - Angela Andrews

Our audio team includes Leigh Day, Laura Barnes, Claire Allison, Nick Burns, Aaron Williamson, Karen King, Boo Boo Howse, Rachel Ertel, Mike Compton, Ocean Matthews, and Laura Walters.

19:24 - Brent Simoneaux

If you like our show, please follow us for future episodes. We would love to see you here again.

19:31 - Brent Simoneaux

All right, goodbye, everybody.

19:32 - Angela Andrews

We'll see you next time.

 

Compiler background

Featured guests

Tramaine Darby

Sherard Griffin