Many companies, big and small, still run mission-critical database applications that were written in the 1990’s and run in DOS. Really! These apps won’t run in modern Windows, so the companies need 2003 Windows servers to keep these dinosaurs going. I’ve been working on a conversion for such an app for two years and it’s about to go live. The client just signed off on the final bug fix. Woo-hoo!
The client is a household name. The application performs crucial tasks for them. Because the code is so customized, it was not possible to buy off-the-shelf software in Windows to duplicate what it does. The system prints highly customized forms that must be perfect and which are used by thousands of their employees each year. A team of twenty does data entry and processing. The forms are created from user-created templates which merge the templates with HP print codes and often highly complicated function calls to generate the data, which is then written to a text file and printed. Whew. The code is complicated but it works. This is one of the challenges of such conversions. Sometimes legacy code must be used because of functionality that cannot easily be duplicated elsewhere.
Could the forms printing be done used modern tools? Yes. But this would have entailed a ground-floor rewrite and costs much higher than how I did it. Also users are used to how the system works now. One thing I’ve found is users really want a new Windows interface however they want the data entry screens and procedures to look and work like the old system. I give them that (unless there is a pressing reason not to.)
Truly, I do get to look at a lot of hideous code while doing such conversions. My favorite was the original programmer would access lookup tables based on the current procedure name four levels down. If the code was moved, the routine would break. This hot mess has been replaced with dropdown menus.
So, if you have a dinosaur app that needs to be migrated to a modern platform, let me know!
PS My client has two other similar apps that will eventually need converting and already has a list for Phase 2 of this project!