How to Understand a New Codebase – Tips and Tricks for Tackling Complex Code