9.36 SIS Datenverarbeitung GmbH

SIS-Datenverarbeitung GmbH was established in 1976, and provides information technology products and services to medium-sized and large companies in Austria and Germany. In 2008, SIS was tasked by a global manufacturing company to migrate its enterprise resource planning (ERP: early supply management) system, built in Visual Basic, to a language that was still being supported.

Background: Visual Basic

Microsoft's Visual Basic was probably the most popular programming language ever devised. At its peak, the language was being used by some 6 million programmers, {1} and countless programs still exist, ranging from applications of a few dozen lines to major applications with hundreds of thousands of lines of code. VB was the brainchild of Alan Cooper and his company Tripod, with whom Microsoft collaborated to produce Version 1 in 1991. VB's popularity was well deserved. A GUI (graphic user interface) made the program easy to learn and use. Event handlers were built in, and database access was a breeze. VB was extended and improved through to Version 6, released in 1998, which allowed the creation of web-based applications. {2}

Then came bad news for the thriving VB community. Microsoft announced that support for VB would end in March 2005, and extended support in March 2008, meaning that VB6 applications might not run in later operating systems (in fact not beyond Windows 7). {7} {9} Developers were urged to move to an upgraded but rather different version of VB: Visual Basic.NET. Some new functions were added and existing ones better supported, but others were dropped. To put it more technically: the move was from an object-based programming language running on a deterministic, reference-counted engine based on COM to a fully object-oriented language backed by the .NET Framework, the last consisting of a combination of the Common Language Runtime and a far larger class library.

Appeals to Microsoft were unavailing, and Microsoft in fact renamed Visual Basic.NET as plain Visual Basic and brought out improved versions from VB7 to VB10, the last being released in 2010. Many programmers accepted that the newer (NET) versions were more powerful, incorporating modern object oriented programming in a more natural, coherent and complete manner than was possible with earlier versions, but did not think the advantages were worth the upheaval, since old VB applications were not readily converted to VB.NET. {3}

To bridge the gap, several third-party developers ('Microsoft Visual Studio Industry Partner Code Architects') appeared, who built applications to minimize the effort involved in converting old VB programs to new VB.NET. One such was employed SIS Datenverarbeitung, a company that forms the subject of this case study. {5} {6}

Microsoft naturally supported these Industry Partners, and eventually collaborated to create ArtinSoft's Visual Basic Upgrade Companion (VBUC), which was free to use for up to 10,000 lines of code.{6}

The Problem

The manufacturing company had built their own ERP system in-house over the preceding ten years, employing 15 developers to create 950,000 lines of (old) VB code in 33 modules, a detailed system on which the company was wholly dependent. Three options presented themselves:

1. Rewrite the system in supported VB.NET code.
2. Convert an 'off the peg' commercial ERP system, or
3. Migrate the system from old VB to VB.NET.

The first was unthinkable: too costly and time-consuming. The second was little better: ERP Vendors estimated costs at 3 to 5 million euros over at least a two-year time frame, and could not guarantee that all the old functionality would be retained. The company turned to SIS Datenverarbeitung, who estimated that use of conversion software would reduce the migration time to a year.

The Upgrade

SIS's step-wise approach demonstrates how IT problems are typically addressed. The steps were.

1. Evaluate existing software conversion software.

2. Select the best for the task in hand. SIS chose VB Migration Partner, as converting a 25K section of the original code took only 2.5 hours, compared to 13 hours with its closest competitor.

3. Examine all existing functions to ensure their VB.NET conversions would be equivalent.

4. Draw up a detailed migration plan, which included specific tasks, restrictions, and risk-analysis.

5. Validate the tools and processes, assessing results and likely costs.

6. Migrate/upgrade the code, adding references and testing as required.

7. Employ a 'configuration management' tool to track the status of code upgrade.

8. Devise checklists for any manual optimization needed during the migration.

9. Build a knowledge base for future reference and system maintenance.

10. Instigate a five-step quality check:

    a. carefully review all code.
    b. check the function and performance of individual units.
    c. check the function and performance of modules.
    d. trial run the whole system to check its function and performance.
    e. profile the performance of the migrated system.

Some 650,000 lines of code were migrated over 6 months for a total effort of 18 man-months (excluding code review and refactoring). Another set of 300,000 lines of code were migrated over 3 months, with all code checked.

In all, some 3,650 developer-hours were needed to migrate the code, some 3,400 hours for code review and refactoring, and some 1,300 hours for testing. The manufacturing company intends to use the migrated code for future enhancements, which are estimated at 2,000+ developer-hours over each of the next 3 to 5 years.

Points to Note

1. Though probably not realized at the time, Microsoft was a key partner in the manufacturing company's business.
2. Companies need to look some decades ahead.
3. The final product was still in a Microsoft proprietary language.
4. An open-source language/standard would have been safer: perhaps C (though more difficult to write) or Perl (though slow and can be difficult to debug). Another possibility would have been Real Basic running on a Linux/Unix platform. {10} Alternatively, the manufacturing company could have opted not to upgrade to later Windows versions, an option more companies are exercising when faced with mounting soft- and hardware costs.
5. The effort that goes into building ERP and similar systems, which places them beyond the resources of small companies.
6. Simply to continue to provide a value proposition to customers, the manufacturing company had to buy expertise to retain its key resources (ERP system).

Questions

1. Explain the problem SIS Datenverarbeitung GmbH was called upon to solve.
2. Why did Microsoft stop supporting Visual Basic, and what does 'stopped supporting' mean?
3. Describe the steps SIS Datenverarbeitung took in upgrading the ERP system.
4. What lessons can be learned from this case study?

Sources and Further Reading

1. Visual Basic. Classic Visual Basic Fact sheet of VB's appeal.
2. Visual Basic. Wikipedia. Outline of the language and its versions, somewhat technical.
3. Visual Basic.NET. Wikipedia. Outline of the VB.NET version, again somewhat technical.
4. Successful migration of ERP-System with 650,000 Lines of Code from VB6 to .NET. VB Migration Partner. SIS case study.
5. SIS-EVOLUTION Consultants Migrate 950,000 Lines of Visual Basic Code to .NET Framework in Nine Months. Microsoft. August 2009. Microsoft case study.
6. ArtinSoft's Visual Basic Upgrade Companion (VBUC). Microsoft. Application to migrate Visual Basic 6 to Visual Basic.NET and C#.
7. Microsoft Support Lifecycle Policy FAQ. Microsoft. Microsoft's 'support' and 'extended support' policies.
8. Can someone please explain Version Compatibility to a new to VB person? VB Forums. Various meanings of compatibility.
9. Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008 and Windows 7 StackOverflow. Microsoft will not support VB6 applications beyond Windows 7.
10. REAL Software is Now Shipping VB Migration Assistant. RealSoft Forums. Note, however, that Unix is open source but RealBasic is not.