What is the best approach to releasing a new version of a hosted web app, and how often do you typically release? Do you pick an arbitrary date, say every week, month, etc. to rollout an accumulated set of fixes (perhaps using an approach similar to Joel's approach to ship dates)? Waiting much longer than that seems to defeat part of the major advantage of a hosted app. On the other hand, you wouldn't want to constantly roll out new features that might confuse the user (i.e., if there was something different every time he/she logged in).
Until recently my experience has been primarily with installed server-based or desktop apps. I am curious to see what type of release management people use with a hosted app.
Google's approach is probably the best for the end user, but it comes at the cost of complexity.
They roll out new versions (and sometimes just individual changes) on a pretty constant basis (as often as daily, depending on the project). But here's the kicker: only a small portion of users are given the new version.
Google have a large number of users for their big products, so it's practical to put in rules like "5% of users should see this feature".
They can then analyse the results and plan their next release, perhaps to another 15% of the user population.