Version numbers

Versioning is segmenting work into manageable batches of improvements.

Each version could be the goal for a sprint. For some teams, multiple concurrent versions are active in a sprint.

We found it to be the best way to get stakeholders on the same page to what, when, where work is going to be delivered.

  1. For clients, it gives them an idea when a feature will be deployed.
  2. For project managers, it helps them organize and prioritize work into different manageable batch sizes. Remember velocity & team strength?
  3. For developers, it allows them to focus on delivering quality work
  4. For QAs, it allows them to identify and categorize bugs easily. Most importantly the version that caused a bug to appear.
  5. For marketing, gives them an idea of the changes happening in the system to report back to users -- yay! Product marketing!
  6. For deployment managers, makes it easy to manage releases, security checkpoints, and revertability of versions.
  7. Our tooling focused on around versions (container versions, github releases/tags).

Our conversations, stand-ups, reports are now centered around work about the current development version. Business teams and designers usually talk about future versions. While customers always talk about the current version being presented to them.

So far it's been bulletproof and has helped us dramatically in delivering value to our customers.

Versions and Sprints. What's the difference?

For most cases, we relate versions to sprints. This is good for early-stage developments where batches of work are big.

For live projects, sprints can hold multiple versions actively being developed in parallel.

  1. Current version (master branch) - bug fixing and stability
  2. Development version (usually develop or feature branches)

Each release increments a version of the app.

How do we determine which version a feature, bug, improvements should go?

  1. Is the feature or bug within the goals of the current version?
  2. Is the feature or bug significantly affects other parts of the system?
  3. How big is the feature or a bug?