Hacker News new | past | comments | ask | show | jobs | submit login

Often enough to consider Software Archaeologist as a role.

- Big picture:

try to identify the integration points with other systems or entry/exit points into the code.

See if the code is logically (and hopefully actually) divided into separate smaller parts. If it is, try to work out the main purpose of each part, its integration points, and if there are any obvious side-effects.

- Detail:

Is it building, clean-building, testing etc? That will make it a lot safer to explore and experiment.

For a single source file people have different approaches to "reading" it. Some people add notes as comments as they go through the file, they don't have to be permanent well formatted "Comments", rather just things to reduce the memory strain. Other people remove blank lines, comments and extra whitespace to try to compact as much actual code into a single screen to look at the code paths.

- Repository:

Is the code checked into a source control system with a log history? If so look in there for clues as to WHY things were changed, this gives a good indicator of changes to requirements and also can explain why some parts of code may "feel" different to others (they may have had to shoe-horn in a new change to an existing codebase).

- Pragmatic:

The previous people (just like you) probably never had a chance to refactor or clean up any tech debt.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: