Maintaining what exists.
WHAT LEGACY MEANS
Code in production that someone must maintain.
WHY IT MATTERS
Most professional programming is changing existing systems, not building new ones.
WHAT YOU WILL ENCOUNTER
Old language versions Unfamiliar languages No tests No documentation Original authors long gone
WHAT TO DO FIRST
Get it running Get it into version control, if it is not Establish how it is deployed
WHAT TO DO NEXT
Add tests around the area you must change.
WHY
They document current behaviour and protect against breaking it.
WHAT TO CHANGE
The minimum required.
WHAT NOT TO DO
Rewrite because it is unpleasant Modernise opportunistically while making an unrelated change Remove code you do not understand
WHY THAT LAST POINT
Code that looks unnecessary frequently handles a case you have not seen.
WHAT TO RECORD
What you learn, as you learn it.
WHAT TO VALUE IT AS
Working software, which is worth more than elegant software that does not exist.