Taking over a project – How to ask the previous programmer?

documentationproject

I'm taking over a development of a commercial web site. This site was developed over two years by another programmer. It's mostly a one-man job (maintain and expand the site). I'll have a 2-3 days transition period when the other programmer will show me the system. But from what I know, there is little documentation. Everything is in the code (which is kind of documented). Here is what I'm planning to ask so far:

  • Explanation on the most complex elements of the system
  • Description of the overall architecture
  • Description of the support tools (IDE setup, unit tests, deployment
    mechanism)
  • Any book, website, podcast he used to influence the architecture of the
    system

Any other I'm missing?

[EDIT] Thanks everyone. Lost of good propositions. I wished I could accept more than one answer! Additionally, I would also add:

  • What have you done specifically to improve the performance of the system, and where is the bottleneck right now?
  • Related to that, what have you done regarding the security of the system? (what have you done, and where are the security holes right now)

One last thing: the developer said that he will be available to to answer my questions later on if I need it. It's his "baby" after all. But I really think that in 6 months he will have moved on and his availability will be much more reduced!

Best Solution

Before you look at the code:

Clear the objs and the exes, and let him/her rebuild the thing. Watch for any manual interaction (does it build via "make" alone or is there some fiddling involved).

Better yet: give him/her a naked (just bought) machine, let him/her demonstrate a checkout and rebuild. Then see how the app is started and comes up (any secret options to input?).

Then: in a pair programming session, add one or two features to the system and see where and how these are implemented.

The above may sound stupid, but I have seen projects where building alone was a nightmare, and a lot of knowledge was in the brain of the developer only. Not having a trusted build environment and having to figure out how to rebuild is a nighmare.

Related Question