Hi Steve,
A reasonable formula would be to start with the estimate for the actual development time, then take a percentage of this as follows:
- 10% for documentation (absolutely crucial for future upgrades)
- 25% for development testing
- 10% for business testing
- 10% for rework
I've never applied a percentage for implementation costs, as usually there is a full-time CNC person to perform all package builds and promotions.
Daily support and end-user training for the modification is not so easy to quantify - depends on the quality of the analyst, developer and user! But I think this would only be a significant factor in complex mods or enhancements - you could possibly use a percentage of 10%.
For percentages for upgrades I would scale the modification according to the complexity of the work. A simpler mod could take 25% of the original development, testing and documentation time to upgrade, test and document, while a complex mod could take 50%.
Custom objects would take significantly less to upgrade - but would still need some checking to ensure that logic, business functions and tables used are still accurate and relevant.
If a standard complex object (such as Invoice Print) has been copied and the copy heavily modified, it may be preferable to recopy the new standard object and reapply the changes, to take advantage of any fixes or new functionality in the standard object. In this case, the estimate for upgrade could be 75% of the original development, documentation and testing time.
Hope this helps,
Nikki