There’s a condition that silently but relentlessly stalks startups and is one of their leading killers: technical debt.
Here are few of its symptoms:
- General discomfort from the feeling that systems and processes were created quickly without considering the long-term objective or strategy of the business.
- Agitation due to sloppily written code to appease a stakeholder or client.
- Bloating from running 500 processing cores of SQL Server, when you should be able to do it on 50, or even less.
- Sluggishness, disorientation and lack of agility due to frequent strategic pivots (primarily due to overuse of Agile development) in the attempt to be first to market with a new product or service.
- Founder/CEO sleeplessness due to worry about scaling, downtime and slow-to-onboard programmers and the repeated doubt: “Did I build it right?”
Technical debt is just like financial debt: it must be paid off or it will suffocate to the point of bankruptcy. In the tech world, this means a ground up re-write — or worse — hundreds of thousands of dollars a month in hardware and software licenses.
We have seen organizations crippled with technical debt. If you are a founder or leadership executive and you are plagued with questions that keep you up at night regarding stability, scalability, and reliability and you are continually looking to your CTO or CIO and wondering why things are the way they are, then your CTO or CIO is failing you. If you are familiar with the metaphor Technical Debt, and you have been made aware of its dangers by your CTO or CIO, then you may have a blind spot in failing to recognize that this “debt” will most certainly be repaid.
Technical Debt can easily result from a lack of planning or clear long-term vision, and pulling yourself out of a mountain of debt takes time and focus. A strong leader armed with a clear understanding of the product needs can guide the software team and company back on the right path and deliver a useful product to fulfill the needs of the clients.
How does an organization begin to tackle a mountain or even a small hill of technical debt? Here are four steps.
- Admit the problem – The first step is for management to admit that the company has a technical debt problem and explain to the organization why it is important to resolve it.
- Estimate, Prioritize, Commit – After evaluating the requirements and work effort estimates, management must prioritize the remediation of the technical debt specifics and commit the resources to resolve it. It is a tricky situation to manage technical debt while balancing client needs and new product enhancements. Having an experienced leader with a fresh perspective to officiate competing priorities is critical to a favorable outcome.
- Break features into chunks – It’s easy – and not always fair — to punch holes in the Agile method as lacking adequate strategic planning. The key consideration is to break out product and service features into chunks and shippable pieces and each part of the software should be well thought out and fitting with the long-term goals of the product. In order to have a successful implementation of Agile one must properly manage the backlog.
- Just simply stop writing bad code – This is probably one of the easiest ways to combat technical debt. Seems simple, right? Well, it’s not. There is a velocity cost in the short term, but a good leader will recognize that this is a cost that is worth taking. Just like financial debt, the longer any debt is ignored the harder it is to settle that debt and move on.
There is much more to be discussed regarding this topic, but it is safe to say that you know your debt is gone or extremely low when you can continually maintain high productivity within your R&D team in the face of changes, including goals and team members.
There are lots of ways to address this problem, and organizations that are crippled the most with it are the ones that are in their growth stages. They have built a product, found an addressable market, sold the product and just kept building.
If you are struggling with these questions, and wondering how you can get higher productivity out of your teams, then schedule a call with us here at TechCXO and we can assist you in a technical payment plan that will set your business up for success.
Jake Massey is an IT executive who helps lead organizations in aligning their overall IT objectives. Jake has led and managed teams of application developers, database developers, QA engineers, implementation specialists, and production support personnel across multiple continents with offshore facilities in Bangalore, Bangkok, Shanghai, Geneva, Paris, and Tel Aviv. See his full bio here.