Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Possible Duplicate:
How do you dive into large code bases?

I'm about to take on maintenance and enhancements of a fairly large and complex Java EE project with a Javascript front end.

I'm trawling through the code trying to work out how it all hangs together but I wondered if any of you people have come up with a methodology for doing this that works best for you? do you start with the UI and work backwards to the database? Or take discrete 'slices' through the system for particular bits of functionality? Do you take notes?

How do you get up to speed with a new project?

share|improve this question

migrated from Sep 6 '11 at 13:52

This question came from our site for professional and enthusiast programmers.

marked as duplicate by S.Lott, Walter, Jarrod Roberson, Steve Evers, Mark Trapp Sep 6 '11 at 19:39

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Please check the faq. Don't post subjective/discussion topics here.* – Mat Sep 6 '11 at 13:06
I would run through the Test Team's test to be honest. I would verify and validate what its suppose to do. I would think learn the code betwee the validation input/outputs – Ramhound Sep 6 '11 at 13:56
I can't find it right now, but I'm pretty sure I've seen this sort of question here before. – FrustratedWithFormsDesigner Sep 6 '11 at 14:03
Start with all of these questions: At least one has to be close to what you're asking. – S.Lott Sep 6 '11 at 14:46
The first thing that I do in such circumstances is always to runt he code through Even code with no DoxyGen comments generates a very useful overview, and understanding of the code structure. – Mawg Mar 26 '15 at 15:45

When faced with a big existing system I keep to the areas I need to go. It depends on the job though.

  • If you are to write a code review. You need to look at everything.
  • If you have to fix bugs. You have to have to get a idea where to look for certain problems.
  • If you have to extend the software. Just keep to your area.

This is talking about > 1 man year projects. I often enough thought I'd seen everything and then discovered that a really big bug was waiting round the corner I hadn't seen.

share|improve this answer

The words large and complex send shivers down my spine... you have 3 options.

1) Cry

2) Stare at code until your eyes go numb.

3) Set up a test environment and start throwing things at it. Go through what's happening line by line and you'll get a general impression quite quickly. A more detailed knowledge can only come with time and bug fixing.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.