Realm of Technical Debt

Firdaus Adib
mvnadv
Published in
4 min readMar 24, 2022

“Move fast and break things”

That is one of Silicon Valley’s favourite catchphrases. It means moving fast to complete something, but also making sure that your product works before moving on to something else.

The phrase has been used for a long time. I believe it was coined around 2000 or so.

It came from a book called “The Mythical Man Month”. The author had a lot of experience with building software projects, and he noticed that most projects fail because they don’t plan ahead enough. Working on some features, they realize there are other features that need to be implemented first. As a result, they add those to their list of tasks. They then realize they still need to implement more features, and they add those to their task list. And so on.

There are two kinds of debt: financial debt and technical debt. Financial debt is when you borrow money from someone else. This means that you must repay the loan.

Technical debt is when you take shortcuts to save time or money. The problem with taking these shortcuts is that it usually results in bugs later on. Bugs are problems that occur during normal usage. They can cause things to break or stop working properly.

Technical debt is like an unpaid bill, it’s only paid by someone else.

In this essay, we will discuss what technical debt is and why it’s important to avoid it.

What Is Technical Debt?

Technical debt is when developers take shortcuts to save time and/or money. This leads to bugs later on. When a bug occurs, it causes something to go wrong. There is a possibility that things won’t work properly or even the whole system could crash.

The term “technical debt” was coined by Ward Cunningham, a co-author of the Agile Manifesto. He has described some code problems as being like financial debt. Borrowing against the future is fine, as long as you pay it off. Examples include using old code instead of new code, using libraries that were written before the programmer was hired, and using software that wasn’t tested thoroughly.

Why Should I Avoid Taking Shortcuts?

Moving fast and breaking things has an expiration date when it comes to coding problems.

When you take shortcuts, you end up spending less time fixing the bugs that arise. Instead of spending hours debugging the code, you spend just minutes doing it. But this isn’t the only reason why it’s bad to take shortcuts. Here are three more reasons why you should avoid taking shortcuts.

1. It Can Cause Problems Later On

If you don’t test your code thoroughly, you run the risk of creating bugs. Bugs can lead to security issues, performance issues, and even crashes. All of these problems can cost you money.

2. It Makes Your Job Harder

Shortcuts make your job harder because they force you to work faster. You need to get everything done as quickly as possible. That means that you need to cut corners wherever possible. As a result, you may miss out on some details.

3. It Costs More To Fix

Fixing a bug can cost you a lot of money. For example, if you use an outdated library, you may have to buy a license for it. Or if you use an application that hasn’t been updated in years, you may have to upgrade it.

How to handle technical debt?

In order to avoid technical debt, developers should take care to plan their projects carefully, and ensure that any changes made to existing code are tested thoroughly before being implemented.

If you are planning to develop a new application, consider whether you need to use a specific programming language. For example, if you are working on a mobile app, you should consider using Java or Swift instead of C++ or Obj-C. This will save you time and money because these languages are easier to learn, and they have fewer bugs.

With Agile, quality was built into the iterative process from the beginning. A feature that was not completely finished would not be released. The release has been done, and bugs will naturally creep in during the release cycle. When working on new items, developers wait until they are almost ready to release the current item. It allows them to automate testing and make sure everything works before releasing it.

Technical debt is an integral part of software development, but it shouldn’t stop you from shipping your product. Prior to adding features or fixing bugs, focus on getting your product out there. Using Agile methods, teams focus on delivering value as quickly as possible.

When designing a new application, it is important to keep track of what has been done previously. Legacy code can cause a lot of headaches, so it is better to avoid it whenever possible.

Legacy code can complicate everything

Legacy code can be hard to understand, which makes it harder to maintain. In addition, it can slow down the development process, because programmers must spend a lot of time figuring out what exactly is going on.

You should try to get rid of technical debt before starting any new project. You’ll be able to save time by avoiding problems that could arise later on.

It is therefore advisable to try to avoid creating legacy code. Instead, focus on building applications that are simple to understand and maintain.

Another problem associated with legacy code is that it may contain security vulnerabilities. Developers who don’t update legacy code are putting themselves at risk of having their systems hacked.

As mentioned earlier, it is very important to test any changes that you make to existing code. This will prevent errors from occurring, and it will also allow you to catch potential issues early on.

Finally, it is worth considering whether you need to use third-party libraries. Libraries are reusable components that can speed up the development process. However, they can also introduce new bugs that are difficult to spot.

For example, some libraries may be written in a proprietary language, which means that they cannot easily be ported to other platforms.

To avoid these problems, it is recommended that you write your own libraries, or use open-source ones that have already been vetted by other users.

--

--

Firdaus Adib
mvnadv
Editor for

Web craft. Rails. Data Science. Biohack. Currently learning iOS.