My job consists almost entirely of adding new functionality to a legacy system built by my predecessor.
The new features are not that much of a problem, I can copy pastes some coder from the system and know enough to know how to use it.
My problem is with 565 classes I never know where my new function should go, what it should inherit. There is no documentation of the architectural and so far I have had to read and read and read source till I can trace a function call and find a suitable place to put my code.
Having read this sight it is apparent to me that working on others peoples code like this is an necessary skill to a programmer so there should be some professional techniques that I would do well to learn.
What tips and tricks are there when upgrading other programmers code ?
The program is a server with a database, an a website GUI.
It is generally helpful to discuss the code base with other programmers. With luck, they may still be in touch with the original developer.
Document as much as you can; writing down what you have learnt will help you to memorize it, and it will be helpful for future reference – both for you and for other developers.
One thing I sometimes do when confronted with a new code base is draw simple UML diagrams of the things I find. I do this by hand, because doing it by hand helps me to understand things better. It is not necessary to do perfectly correct UML or to make diagrams of everything; just draw the things that you try to understand and see if it helps you understand what’s going on. (Of course if you decide to make these diagrams part of the documentation, you should make sure that they are not ambiguous)
Hope this helps. Good luck on your project!