Tips to go about debugging huge products

So it's been around 3 yrs since I worked on a maintenance product trying to understand the existing codebase, layers, architecture etc. It's always easy to start on V1 products I had worked for in MT or the "Prototype" projects in MS.

And now to work on a product with millions of lines of code with as little documentation available as possible & to complete it in next 3 months, it's going to be a tough task

Here are some tips to go about it -

  • Understand the usage of the product. Typical way is to behave as a customer and use the product without caring about the testcases.
  • Learn the technology (Guys.. can u point me to a good & quick COM tutorial :-))
  • If you can figure out the high level modules, try to understand the gist of the modules.
  • If you can debug the product source code, put in breakpoints, view the stacktrace (big thanks to the guy who thought about adding that to debuggers).. and walkthrough the layers.
  • Rational Rose and various tools available to Reverse Engineer the code. It helps in atleast figuring out the high level structure of the code.