Re: "did not include functional specifications"
"The answer is a couple of lines up. First you identify the system limitations that are being worked around in laborious ways, THEN you work out how you're prefer thing to be done, THEN you go back and see if what you've come up with actually makes sense or if there are other things elsewhere which are causing the entire broken chain you just devised a fix for that could be fixed and make the whole thing redundant."
What they should really do is build the solution anew. Send people in and see what the users & business actually need to do and build a solution to achieve that, removing any and all dependencies and kludges used to get the old system doing things it was never designed to do and ensure the new system does everything properly for today's demands and has some extensibility so future demands can be accommodated without to many future kludges.
many long lived institutions are running stuff from the 90's and before, why is it that more modern stuff can't cope with changing demands?