Comment Learn What the System Does First (Score 1) 383
The way I would handle this issue is by doing the following.
1) Learn what the system is supposed to do.
Talk to the domain expert(s) and have them give you a walkthrough of the system.
You have to understand what the software is supposed to do and how it works first.
2) Learn the entire UI.
90% of the functional requirements of a system will manifest themselves through the UI.
3) Define 2-3 Exemplary Use Cases
With your knowledge of 1 & 2, define some typical system use cases.
Now you are armed with enough information to begin learning the code.
You can make assertions about the system. This means you know what to look for,
you just are not certain what form it will be in.
e.g. A widget processor will have some sort of workflow code to do so.
4) Trace Through The Code
Now execute your use cases using the debugger to trace through the code.
This will allow you to hit most all of the major subsystems in the application.
5) Comment the Code as You go Along
As you read and learn the code, comment it! The next poor bastard who comes after you
will be eternally grateful.