Why Isn't My Page Caching?

To many Drupal developers, Varnish is a black magic. When it works, we marvel at its speed; when it’s broken, we break out in cold sweat. Recently, a client of ours needed to figure out why their homepage was not being cached by Varnish, and I learned good lessons debugging the issue. I hope you can learn from me and avoid my mistakes in the future!