This is my third article about technical debt. You can find my previous two articles here and here. In this one I will focus on how you can reduce technical debt as a middle manager or upper manager in an organisation.
Obviously, reducing technical debt to zero is easy, by simply making sure you don’t have any proprietary code at all in your company. If KLOC is the ability to quantify technical debt, then zero KLOC obviously equals zero technical debt. This however also eliminates your company’s edge and uniqueness, and makes it impossible for your organisation to stand out from the rest of the crowd, since everything you build your company from is “off the shelf components”, making it easy for other companies to copy whatever your company is doing – And if your company is successful, others will copy your strategy.
The best historical example of this is how IBM used exclusively “off the shelf components” to build their PC in the early 1980s. Which resulted in that Compaq and other computer vendors could easily copy their product, and such take market shares from IBM. Today IBM barely have market shares at all in the PC industry because of this decision. This is considered one of the classical historical strategical failures in the history of computing today. So obviously, keeping some parts proprietary as “your own” technology, is key here.
Identify your strategy
The first thing you need to do in order to balance this, is to identify your strategy. Your strategy should be summed up with a simple sentence, easily understood by all members of your organisation. I currently work in ForEx, and a good example here might be illustrated with some insights into how my industry works.
In ForEx trading, 80% of revenue is acquired indirectly through “Introducing Brokers”. These are key movers and shakers, often with a massive social profile, with thousands of followers. Making an IB evangelise your trading company, might sometimes result in thousands of traders willing to use your services. Hence if a ForEx company’s vision is to “be the preferred broker for ForEx traders”, a good example of a sound strategy might be as follows.
Provide superior tools for Introducing Brokers
Simply since you realise that if you can convince introducing brokers (IBs), you don’t need to convince your end customer (traders). The IB will effectively make the decision on behalf of his clients.
At this point you know what you don’t need to create yourself. For instance, superior tools for IBs does not require you to create your own CRM. Hence, you can use off the shelf components for your CRM. You can also use third party components while building your software, such as database adapters, other libraries and frameworks, that allows your developers to more effectively do their job.
However, the one thing you really want to build yourself, is the “partner management system”. This is the system your IBs are using on a daily basis to do their jobs, check their profits, and create sign-on links for their clients again. This system is arguably the only system in this example you’d want to create yourself, while everything else are things you could easily use pre-fabricated components and tools to accomplish. This allows you to focus all your energy into creating one staggeringly good system, while buying or obtaining everything else in “the market” somehow – Either by using Open Source components (Sugar CRM), or by purchasing services and libraries from other 3rd party vendors somehow.
In my next blog I will look at additional strategies for “outsourcing” the creation and maintenance of components and supporting tools, by leveraging Open Source as an asset in your organisation. But for now, let this article sink in, and try to identify your company’s main strategy, which is never the same as your company’s vision, but rather an “activity” that facilitates for your company’s ability to reach its vision.