Practice: Small Releases
  • Every release should be as small as possible and no smaller

  • Releases "by the book" are two months on average

  • bivio.com experience:

    • Initially the release cycle was 48 hours

    • We release weekly now

    • 200 releases and 150 database schema changes in 2.5 years

Notes:

Get releases out the door as often as feasible. With web-delivered applications, weekly releases are quite doable. Desktop software is likely to be longer, e.g. every six months.

In XP, releases are distinct from iterations. An iteration is an internal release. My experience with web-delivered applications and information systems is that you can easily make iterations and releases one and the same. The smaller the release, the fewer problems introduced and the easier they are to fix.

We were running a pretty tight release cycle at bivio during our beta and just after launch. 48 hours puts a lot of stress on people, but it was really good to focus on quality in the first month. After that we relaxed to a weekly cyle.

Our acceptance test suite runs nightly. Any weekly jobs are moved to Saturday on the test system. This allows us to do an automatic final test run of all weekly jobs just before our release Saturday. If any fails, we can rerun them by hand and try for a release on Sunday.

Another critical factor is being able to reload the servers without affecting our users.