When your product has a nasty bug that’s
impacting a lot of users, your first priority is to put a fix in that’s going
to help resolve it. And you might hear your developer say something like: Yeah I’ll just put in a quick fix. A week may go by maybe how possibly a month and you’ve got another nasty bug on your hand and your developer might tell you: No problem
I’ll I’ll have that bug resolved by the end of the day. Later on you might ask them to put in a new feature and they may respond with: Yeah it’s gonna take a
while. How long? Weeks, possibly months. Weeks?
Possibly months? Why so long? Tech Debt. Wondering what’s Tech Debt, how to avoid it
and prevent it before it gets too unwieldy? Well I’m going to answer these
questions and many more in today’s quick Build Tip. Welcome to Build, brought to
you by Pivotal Tracker. I’m your host, Poornima Vijayashanker,
and today I’ve got a Build Tip for you. I’m joined by Jay Hum, who is a Product
Manager at Pivotal. So Jay, tell me what’s Tech Debt? So Tech Debt is the effort
that builds up when a team makes a conscious decision to implement code
that’s easy instead of building out a best solution. Okay so what is that actual-
So the easy to implement quick messy code, Yeah. is the debt, and like any type of debt, it
accrues interest over time and so the additional effort that is built up that
can either be time, money, or resources is the technical debt that builds up that
makes it much more difficult in the long run to implement a better solution. So
How can we avoid Tech Debt? So here’s the interesting thing,
Tech Debt is usually thought of as a bad thing something that needs to be paid down
very quickly or avoided as much as possible or altogether. However, tech debt
is actually unavoidable, so much like financial debt there is a not
necessarily good technical debt but there is technical debt that you can
deal with. So an example is in a mortgage or student loan where the principal plus
the interest that you accrue, could be lower than what you actually yield in
terms of the investment, right. Now any experienced or seasoned developer are
always wanting to create the best possible solution that there is out
there, however sometimes you need to incur a technical debt in order to get a
product out to market quicker. So generally the time to market
or the time pressure is what makes a Technical Debt unavoidable. Okay. It’s
unavoidable, but how can we manage it while continuing to meet customer needs
and pushing features out? Well here’s the thing about technical debt that makes
this sort of the analogy to financial debt a little dissimilar. So you don’t
actually have to pay down technical debt. So for instance, when you’re building out
a product or service, there could be parts of the code that aren’t used very often
or not touched, that don’t need to be changed. So that the ROI on actually paying down
that debt or refactoring doesn’t get you much, doesn’t get you anything there. So
one of the other ways to really look at it and approach it, is build in
technical debt into the product roadmap or how you plan out your releases, right,
and when you think about it you should be thinking about it in terms of what’s
the upside potential, versus the downside risk of either paying down technical
debt or not paying down technical debt and relate that to again getting a
product or service up to the market quicker or spending more time and
writing more cleaner quality code. All right that’s great that we don’t always
have to pay down tech debt, and that it’s okay to accumulate it. But how do we know
when to make a trade-off of paying it down versus just letting it exist? Right,
so one of the things that you want to look at it, is what is the probability of
occurrence of something bad happening or probability of occurrence of you having to do
a major refactor because the technical debt has just gotten so big. And coupled
with that, you also want to look at what is the impact. So again there’s smaller
technical debt with the impact of paying it down it’s not very big, but again
there’s other parts where the technical debt can be very big, could lead to a big
regression and what is the impact on the delay to the market or the impact to the
customer they’re actually using your product that’s in the market right now. Did you have an example of a situation where you don’t need to pay down the
tech debt versus when we do? Sure yeah, I think a really good example will be if
you take a look at an app, into your analytics, and you’re looking at one of
the features that you’ve implemented is not being used very often, right, so this
is a good example of you probably don’t want to pay down technical debt on that
feature because again it’s not a lot of people that are using it. And it reverses
the flip side so if you see that there is a feature that’s being used very
heavily by your users and that they’re clamoring for a feature that is sort of
an add-on to that feature, and this is an instance where you would want to pay
that technical debt quickly so that you can build out that new feature that is
an add-on to the existing feature. What happens if you leave tech debt
for too long? Is there ever a point where it’s too late to pay it down? There are instances
where it is too late and usually what that manifest itself is that you have to
do a big rewrite, which not a lot of people enjoy doing both on the customer
perspective as well as the development team. But if you go back to what I said
earlier you realize that tech debt is unavoidable and you build it into
your product strategy, in your product roadmap and there’s ways of being able
to manage that tech debt at a good pace so that you never have to end up with
having to do a big rewrite. Thanks Jay! This has been really helpful. Do you have any other
resources for audiences to check out? Yes, they should check out this article
written by the Agile Alliance, it is called
Introduction to the Technical Debt Concept and it goes much more deeper into some
of the concepts that I discussed here on technical debt. Now Jay and I want to know,
how do you guys handle tech debt at your company? Let us know in the comments
below this video. Okay that’s it for today’s Build Tip. Be sure to subscribe to
our YouTube channel to receive more great episodes of Build and Build Tips
like today’s. And special thanks to our sponsor, Pivotal Tracker, for their help
in producing today’s episode. Ciao for now!