Alex Robbio is the President and co-founder of Belatrix Software.He was awarded the EY Entrepreneur of the Year Award in Argentina last year
In a recent discussion with some of the leading startups in Silicon Valley, one of the issues we discussed was that of technical debt. It is ironic, perhaps, that in this time when every discussion focuses on the need to be customer-centric and adding the latest technologies, too many software companies end up failing because they prioritize new features over architectural and foundational work. By ignoring the technology stack, they accumulate significant technical debt.
I recognize that technical debt is often overlooked or ignored in organizations, simply because they are in any case struggling to keep up with all their other business priorities. It can be difficult to build a business case to deal with an issue when there are other seemingly higher priorities. For some companies, however, their technical debt ends up becoming a very significant limiting factor to the point of being a competitive liability, as other companies can come in with a more nimble technology stack that is easier to maintain, faster to deploy or that scales more easily and less expensively. For that reason, they are able to move faster and not only catch up but actually beat your product.
Technical debt can be acceptable at times, but in these cases, it means actively being aware of and managing this debt and ensuring that your acceptance of this debt is aligned to your business strategy. As with most things in life, prevention is better than looking for a cure — it’s better to deal with debt early on in the life of your startup before it becomes a competitive liability.
So how can you avoid falling into this common trap? During my recent meetings with some of Silicon Valley’s best-known executives, we came to a consensus on the importance of funding real research and development (R&D) in the base technology. This R&D helps ensure your technology stays abreast of the latest developments. We also discussed the importance of training the board and executives to properly value the technical debt just as much as they value new features. In addition, it’s critical to schedule time for the base work and new technology, not just new features. You may also want to consider buying smaller companies, even acqui-hires. This can be an effective way to keep a fresh inflow of ideas and technologies.
We also discussed the importance of measuring technical debt, to prevent it from becoming problematic. Particularly in an Agile development environment, the methodology provides an easy way to achieve this. If you have good requirements, documentation and code reviews, for example, you can clearly and transparently measure this debt, and the impact the debt is having. Once you have measured it, it’s important to communicate that information in both technical and non-technical language to the appropriate stakeholders, including senior management. This comes back to the earlier point about training executives on valuing the debt.
Previously, I have written about the value of hiring individuals with significant experience — those so-called “grey-haired developers.” It’s worth bringing this into the discussion, because as my colleague Uzi Mamani mentioned in an article in Forbes, young developers can sometimes rapidly produce code like a machine gun, but don’t look at the broader picture, the side effects of the code. What are this code’s dependencies, for example? Having such senior developers and technical experts on your team will help you keep abreast of the impact of the technology you are developing and whether it will contribute to your debt.
What have been your experiences? What strategies have been most successful for you?