Here are 9 systematic approaches that will help you UNDERSTAND your legacy code, and thus have a better shot at maintaining it in the manner it and your users deserve:
- Retention FTW. There is no substitute for talking with the person who wrote the code
- Encourage, reward, and prioritize legacy code discussions
- Prove understanding of legacy code by writing tests
- Stop digging a deeper hole… keep those tests up to date
- Prove understanding of legacy code by correct hypothesis before changing
- Prove understanding of legacy code by architecting it
- Prove understanding of legacy code with Notes and Writing
- Use automatic knowledge to multiply your brain power
- Try to say no (the right way)