I am a fairly novice Java programmer and I am currently working on a project to extend a piece of software that has been developed over a few years. So it has pretty big code base and the previous developers knew it well, so extending it is not going to be easy without a thorough understanding of the structure and function.
1) I had begun by trying to tackle small parts of the system and document them with mindmap. (particularly I am trying to document the interactions with external systems)
2) I have the book "code complete", which I am working through.
3) I have pointed some tools like "tattletale" at the code to get some diagrams of dependency relationships.
What other strategies should I employ, should I focus on one particular aspect?