I am a Sr java Developer and have recently joined a new team. Here I have been asked to create a functional document looking at the code of a legacy application. This application was written about 8-10 years back, which is currently running in live environment but due to lack of documentation it is difficult to be setup and run on local development box. I consulted some of the old team members who support it, but none was able to run it on their dev boxes.
Now I have to create a functional document out of it (with running it only looking at the code) which will act as a base to re-write this application with new technology and some enhancements. Kindly suggest what would be the best way to move forward?
I tried to find out from testers and found that there is no tester currently allocated to this application as it’s an old running app on live. There are not much enhancements or bugs coming up. Ans as this re-write project is already queued up, the management is looking into aligning any coming bugs to this new app.
4
Joel Spolsky had a lot to say about rewriting code (i.e., “don’t”).
In your shoes I’d try to tie down the business users and see if I could get a current set of requirements out of them. It’s possible the old code contains logic to handle situations and conditions that are no longer relevant. You may have an opportunity to greatly reduce the footprint.
You can use this new list as a guide when you examine the code, to determine which bits are important and which bits can receive less attention.
Be sure to remind management that they’ll need to assign testers to this project.
(A mechanical bug-for-bug port is possible of course, but personally I’d avoid it)
Good luck!