Want to know what really makes us tick? Our blog provides insight into how we approach our work, the technologies we use and how we hope to add value to our clients' organisations.

When Technology becomes the Obstacle, it's time to Take Stock


Modern businesses live and die by the technology they use, and how it serves them. But what to do when your critical business software starts killing your business and your customer relations? When customers are being impacted by poor technology decisions on your part, how do you save the sinking ship and improve customer satisfaction? How do you recover lost customers when they prefer your competitors' offering to yours?


Let's face it, enterprise systems are complex beasts that are often difficult to tame. They are also long-running systems that have grown and mutated over years to fit the winding roads your business often have to take to stay afloat. On average, that if you have been using the same legacy system for more than 5 years, you are more than likely to have lost almost 50% of the institutional knowledge of how it works, and more than 7 years you could have lost as much as 80%. At 10 years, more than 95% or organisation have lost all of their original engineering and architectural team that were responsible for the system when it was activated for production.

Technical debt accumulates over time

Did you know that technical debt comes in many forms? We currently recognise five different kinds of technical debt, including the most well known - Code debt. The problem with unchecked technical debt accumulation is that at some point, you have to call Bankrupt and start all over again.

Delaying the inevitable

Fortunately, there are several tactics available to delay your system's date with destiny. Most commonly used is of course debt repayment (or what your programmers would refer to as code refactoring). Code refactoring is a process whereby parts of an existing system is re-engineered to address certain technical deficiencies, limitations or defective code. The challenge, however, is with know which part of your multi-system architecture is to blame. The answer lies in diagnosing the problem by analysing the system.


Audits originated within Accounting Sciences as a management and oversight practice to verify and validate financial reporting of organisations, businesses and taxes. It is, however, a fairly new and uncommon practice within Information Technology Management. It may be known by other names, such as System Assessment, System Review or a Why-did-we-crash-again-assessment.

What is a Technical Audit?

A technical system audit is a structured, engineering process that analyses and deconstructs complex software architectures to identify defective, ineffective or inefficient software and integration components.

Reverse software engineering

To get to the root of your software problem, a good audit process essentially reverse engineers the system, its architecture and the processes used to create it in the first place. This allows for the identification of failures on three different levels:

- The customer (or the value offering);
- The product (the system, components, architecture); and
- The development activities (the practices and process).

The output

An audit produces a report detailing both the findings and recommendations. This is done in the form of a detailed, technical report indicating what's good, bad and really, really ugly.

As for the recommendations, this is where remediations are provided in order to remediate the problems identified in the system so that the impact to your business, customers and even IT operations can be eliminated.

Are there other conditions audits can help?

Indeed, there are. Audits are also effective control mechanisms to evaluate ongoing software development and implementation projects. Using audits as an in-project activity, it serves a similar value you would get from a structural engineer or quantity surveyors during building construction projects.

Audits can also be used as root cause analysis process to understand schedule slippage, budget overruns or identify choke points in your software delivery process.

Want to know more?

If you're in need of a technical audit, focusing on architecture, code quality or process efficiency, give us a call. We're here to help.