I took over an account a couple of years ago that was on 3.74 SQL. We just went live on 2014 premium this year. They have extensive custom programs.... at least 50, probably more... SQL triggers, stored procedures, VB Programs, Sage scripts, lots of custom Crystal reports.
The CFO / Office Manager is the only person that knows anything about the programs. She will tell everyone, including management that ""everything is documented"". Her idea of documentation is the name of the program, where it resides on the server, and how to run it. I have explained to her and the rest of management that this isn't documentation. Documentation is a the detail, a user manual, that ANYONE should be able to read and then navigate and use the program.
I made a big judgement error when I didn't insist on an extensive needs analysis prior to quoting the upgrade. Most of the code was a complete re-write, requiring the programmers to pour through someone else's code to determine the functionality. The Crystal reports had hundreds of hidden formulas, many quite complex that had to be converted from v3.74 to v5.1.
One of the best laughs I have had in a while when she asked if I could change the Crystal report to dynamically display customer numbers on the pick screen. I said of course, it is an easy change. She said in the ""old MAS"" it used to look different but when you added or deleted a customer, the pick screen customer list in Crystal would also change. I told her I am not sure how the previous consultant did that in Crystal and she said that looking back at her notes they used a ""VB wrapper"". How in the h#$% am I supposed to know ahead of quoting an upgrade that the Crystal reports are using VB wrappers? LOL!!!!