Documentation, code comments and good variable naming are all key to understanding code. This applies to both code that we write and applications that we use through their API’s. I want to illustrate how useful diagrams are in understanding an existing complex code base. Understanding code quickly is particularly important when inheriting a new project or trying to figure out how to use a third party package or open source project. As we all know we are typically faced with tight deadlines, limited resources, and herculean objectives.