Assessing a Complex Legacy Environment
A software assessment engagement helped Gallatin Steel make informed decisions on accumulated technical debt by providing them with a comprehensive analysis of what they had, the risks that were present, and recommendations on whether full or incremental upgrades were necessary to sustain and support continued growth.
Gallatin Steel came to us for help with their in-house systems. For years their business had grown but their technology for the most part had remained stagnant. As they continued to look forward to more growth, they needed to make sure the technology they had would not put their business in jeopardy.
Through a brief, 3-day onsite engagement, we conducted a top to bottom exploration of their existing application architecture, code, and databases. The resulting assessment report helped Gallatin’s CIO and executive team gain clear insight into what areas posed the greatest threats and their options for making changes that would support their future growth. As a result, Gallatin was able to budget and prioritize for the improvements that would be most beneficial to the business.
In a software assessment project like this, we begin by thoroughly exploring the existing environment. What applications are in use, the condition of the database(s) and the overall system architecture.
The first step was spending 3 days on-site examining the IT environment. We combed through the application environment, which consisted of almost 100 individual C++ applications, some Excel and Visual Basic for Applications (VBA) tools, some newer C# tools, and a SQL Server database.
We were looking at more than just the inner workings of the code. The larger context of each particular piece of software is always critical. For example, questions like how easy it is to use turn out to be important because of how it trickles down into things like ease of training and cost of maintenance.
We examined the SQL Server database environment that tied all of the applications together, looking for any differences between the current implementation and best practices. We also reviewed the source code, looking for small issues that affect coding efficiency to larger ones that affect application stability, maintainability, and performance.
What we found was not at all unusual for a growing company. It’s very common for environments like this to accumulate quite a bit of technical debt as things are built and fixed on the fly. With a small IT team and the never ending pressure of growth and forward motion, it’s not unusual to lack the time and bandwidth to build and rebuild according to best coding practices, scalable architectural models, and polished user interaction standards.
There’s never just one right solution for paying off technical debt. The options range from a clean sheet modernization project to a more measured, incremental approach, to doing nothing at all but maintaining the existing systems. Each approach has advantages, costs, and risks, and our assessment report clarified the tradeoffs for Gallatin’s leadership team.
In addition to executive-level guidance on options, our assessment report included a punchlist of tactical issues that any developer could make use of to begin incrementally improving the stability and performance of Gallatin’s current systems. The report also served as a lightweight documentation set that reduced the overall fragility of a system that required a lot of “folk knowledge” to operate.
Gallatin’s CIO was able take our assessment report and use it to inform a more targeted, realistic budgeting process that has moved the company towards a more scalable, productive application infrastructure.
CIO, Gallatin Steel