Joined: 22 Nov 2005 Posts: 700 Location: Troy, Michigan USA
Sorry to hear that you need to retrofit modified code into a new version of a product. I hope that whoever made the original code changes also made exceptional documentation for each of the changes they made.
I also hope you have the original unmodified code available.
One of the first tasks, and by far the easiest, will be comparing and noting all the modified lines of code.
Next you need to identify why the change was made for each modification to the code and what code is associated with that change. This will probably be the hardest part if there is not already good documentation for this.
Now you have a list of changes, the reason the change was made, and the associated code for the change.
For each change you have identified, you need to ask:
1 ? If this change was to fix a bug in the code, is that bug fixed in the current version. If yes, you can probably discard the change, if no, you need to understand very clearly what the bug was, and how the author of the modification changed it. Looking at the current code, will the change still fix the bug, and can it be put in the same place.
2- If the change was an enhancement. Has the enhancement been added to the products current code? If so, does it function if the same way, giving the same results. Also is the enhancement something the client still wants and needs? This may be difficult to get the clients to commit to, the client that requested the enhancement may not be at the company, or in a different area. If the enhancement is still required, you need to, again, understand exactly what the enhancement produced and how the author of the change implemented it into the old product code. You now need to look at the current product code to see if the change will function correctly in the same place in the code.
3 ? Version upgrades. Depending upon how old the old product code is, and how many upgrades have not been implemented, you may fine that you will have to do some intermediate upgrades to file layout conversions, etc.
4 ? Document your changes. Do a better job that the original. Think about what you didn?t understand and what documentation would have helped, then produce that document.
5 ? And testing. Test, Test, and more testing. Run the same scenario with the old code and the new code. Look for result changes in the areas that you are retrofitting, and in areas that you are not retrofitting. You should be able to justify every change in the results. If there are no changes in the results, I think you tested with the same old version thinking it was the new one. Document the result changes clearly and get sign-offs for every one.
6 ? And finally. Test, Test and more Testing.
Well, there?s my two cents. I?m sure others will come in with there useful helping tips also.