I’ve been preaching the standard ‘development’, ‘staging’ ‘production’ method of testing and deploying software for pretty much as long as I can remember. This made me all the more interested to read this post telling how IMVU, an ‘avatar based chat site’ go programatically straight from commit to deploy.
The high level of our process is dead simple: Continuously integrate (commit early and often). On commit automatically run all tests. If the tests pass deploy to the cluster. If the deploy succeeds, repeat.
Whether this approach would work for you really rather depends on the type of environment you work in. What would concern me most is how one could possibly deal with intermittent problems which one was unable to consistently reproduce. The continuous deployment solution, I suppose, would be to write a number of tests which reproduce the circumstances around the failure.
It’s certainly an interesting idea though, and one that is clearly working for IMVU.