Incremental Delivery?

When using Agile approaches and Incremental development, a necessary decision is how often to release a new version to your users.

Pre-history

Back in 1988, Tom Gilb published Principes of Software Engineering Management, in which he wrote about a weekly delivery cycle. Yes, back in the era of Mainframes, some teams managed to release weekly.

Floppy Disk era

When software started to be delivered via a floppy disk (and later CDs and DVDs), release frequency drastically dropped. Due to the need to produce multiple physical copies of the documentation and the disks, a new release occurred yearly at best.

Web era

The web was a return to the Mainframe era — but most people do not think of it that way. With a centralized web server, a new version could be deployed at any time (provided it had been adequqtely tested).

Distributed era

Now that software is distributed and deployed on multiple devices, we are back to having to choose deployment frequency. Devices can phone home to find out if a new version is available, but we are left with the problem of choosing how often to allow (or force) users to upgrade.

Tradeoffs of deployment frequency

  • Ideally we want to get feedback from real users about new and changed features as soon as feasible – developers lose motivation if a feature that was worked on six months ago still has not been released
  • Finalizing acceptance testing and documentation has a cost, so it is nice to batch up sets of features for a release
  • Users vary in how often they want to have the disruption of installing a newer version and learning the foibles of that version – operating system developers are used to this, as are developers of utilities like PostgreSQL, which is currently on Version 16, supports versions 15 thru 12 and has multiple prior unsupported versions

For teams that are serious about doing Incremental Development, the Incremental Delivery needs to happen with a close synchronization to the development cycle. An obvious strategy is to put new users on the latest version, and to provide an option for existing users to upgrade on their own schedule…