Cache should be agnostic to model changes.
Version objects in cache.
+ Goes against prototyping
+ Coverage.py - Make a game out of testing
+ Test driven refactoring
+ Almost guarenteed that you will be rafactoring
+ Require unit tests for all code going forward
+ Establish a good foundation to build on
+ One in the code that broke and one in the test that failed to catch it
+ user types/permissions, relatively constant stuff
+ frequently changing objects
+ Should I get test data from cache?
+ If you have servers like Solr or RabbitMQ
+ Run them on staging not in the dev
+ Leverage logging where useful