A leading industrial control systems vendor has a product that has evolved over the last two decades. The product garnered a good share in the market. However, the product required regular enhancements to keep up with the various changes to its environment and interfaces. This legacy maintenance effort was taking time away from their core engineering team, leading to delays in new product development.
The product software has about 750 KLOC in C. The documentation was sparse and the code had been maintained by several developers over many years. The software was built on top of a proprietary real time scheduler. The program had about six processes including one which managed the local console on the equipment. The equipment communicated over a factory LAN with a master controller over a well defined application protocol on TCP/IP. The software was released to existing customers regularly containing both enhancements and bug fixes.
An initial core team of two engineers from Tismo, studied the code and worked alongside the client’s engineers in implementing enhancements and fixing reported bugs. These engineers also used available tools to reverse engineer the code and document at a high level the structure of the code. All discussions with the client’s engineers were captured and a knowledge repository was created. For the next two months from the offshore center in Bangalore, Tismo’ engineers started the process of transitioning the maintenance work. For the initial period, a process of detailed code review of all the enhancements and bug fixes was implemented. From the third month onward, more than 90% of the maintenance effort was handled by the offshore team. Starting with a few rudimentary test scripts, the offshore team over time built a regression test suite containing a large number of test scripts. The regression test suites helped ensure high quality software releases to the end customers.
The client was able to deploy its engineering team on new product development initiatives that would help it retain its competitive edge in the market, while at the same time, with Tismo’s help ensure that the existing product was well maintained and supported in the market.