Tech companies rarely talk about one of their worst nightmares, I’m talking about Technical Debt.
What’s a Technical Debt you may ask? Well, it is very similar to monetary debt where interest is accumulated as we grow our product without paying the past debts.
When building an MVP, one of your priorities should be to deliver fast without over engineering. However, your CTO must still pick the right technical choices so that the product has a good foundation.
In general, the faster you deliver, the more likely it is that a technical debt is around the corner… but there is more to that.
What are the causes of technical debt?
If your developer is a rookie, he may not have enough experience to know all the ins and outs of his own choices. Or maybe he’s unable to write well designed code.
Delivering too fast
The most common cause is that your team is pressured to deliver too fast, which simply doesn’t give them enough time to design the product properly.
Being able to communicate the specs clearly is extremely important here.
Let’s imagine that you have explained a feature to your developer but for some reason he has completely misunderstood you. By the time he shows you the developed feature, lots of code would have been produced. You would then tell him that the feature is not exactly what you wanted. It is very likely that your developer will find a quick and dirty solution to match your expectations without redesigning the code.
If your developer is a freelance that you pay once, chances are that he won’t give his best to design a high quality architecture that would enable your product to scale. It just does the job during his demo but what happens next is none of his business anymore.
What are the consequences of having technical debt
Your product becomes unstable and full of hidden bugs due to technical debt. Now, don’t get me wrong, there will always be bugs but many of them can be avoided with a proper architecture and design.
One of the signs of technical debt is when your team fixes a bug, another one appears indirectly due to that fix. Then, a couple months later, the same bug re appears due to some other changes. As time goes by, it becomes more and more time consuming, thus very costly to maintain your product.
When the same bugs arise over and over again, you product will start losing credibility and you should avoid that at all costs!
With a poorly designed product, chances are that you may not be able to grow your business as much as you want, due to technical limitations. Some technical debt could even prevent you from implementing some new important features.
How to avoid technical debt
There’s no way to completely avoid technical debt as technology is evolving so fast. What may seem to be the perfect architecture today will probably be obsolete in five years. However, there are ways to reduce the technical debt.
First, you need to make sure that your communication with your technical team is good enough. Write your specs but also talk to your developer to make sure that he has understood you. If you don’t take the time to explain thoroughly it now, regret it later.
Then, keep in mind that a well designed product takes time. So, give it enough time in the beginning so that you can save more time and money later on. Even though you may not have enough time in the early stage of your business, it’s always a good idea to allow your developer to refactor his code every now and then.
Last but not least, it is important to have a knowledgeable and experienced CTO or developer in your team. A good CTO will always make sure that your product is designed to be testable, modular and scalable.