This document discusses the challenges of test-driven development (TDD) on Google App Engine. Some difficulties include models having a lifecycle between transient and persistent states, tests requiring the datastore, and keys being auto-generated. The author advocates for exploring features by writing mock user interfaces first before adding tests. They also recommend exploiting features using a "vertical slice" approach of mocking interfaces, writing functional tests at the WSGI level, and iterating with unit and functional tests using refactoring. Heuristics discussed include separating domain objects from models, using factories for models, and remembering that if something is hard to test it may be flawed.