We have a program that is about 15 years old and on version 6. It is in a niche market and used by very small departments in very large companies all over the world. It works in a very highly regulated environment and has been heavily influenced over the years by the customer needs making it almost like a bespoke system.
One of the main problems is that this program orignally started off on DOS and has migrated through pascal to Delphi and Windows. The whole thing has become a bit of a clunky nightmare with goodness knows how many styles of programming in place, although it does work.
It is basically a windows form driven system with an Oracle database backend, most of the code is mixed in with the UI and it doesn't really follow an OO design. Just to give you an idea of size, we're talking about 1.3 million lines of code spread over hundreds of units and a database with about 150 tables. So it's not a small package.
There has been talk about migrating into a new programming language (most of us here like c#) and basically reorganising, cleaning up and adding all those new features people want along the way. Possibly a new database? possibly using a web type architecture?
Does anyone have any experience and/or advice when it comes to doing this kind of thing. Obviously we're going to have to try and convince management why we want to do a re-write. My biggest worry is that after 2 years work they end up with exactly what they have now that is much more maintanable and pretty but no more sellable.