Keep it simple, stupid!
When we first released our tool to the end user, we proudly named it v1.0.0.
This is called semantic versioning – major.minor.patch
Makes sense for libraries where a minor change e.g. 1.0.0 to 1.1.0 means interface compatibility, just some new functions. A major change e.g. 1.0.0 to 2.0.0 means “Attention, I have to adapt interface changes” (renamed functions, added function parameter, different dynamic behavior )
But for a customer tool like a portal what does semver mean?
Is moving a button a major or minor change? What about renaming some menu items?
Ok, the next attempt was a bit more straight forward: we used the year and the calendar week like this 2017_cw16.
Not too shabby. But: Is a calendar week of any importance?
Versioning ala JetBrains
Sometimes You need that Eureka moment: staring at the splash screen of my PyCharm IDE:
Why don’t we use this scheme: YYYY.R (year.release e.g. 2017.2)?
What are the advantages?
Divide and Conquer: You can sort your backlog very roughly into the upcoming 4 releases.
Clarity about “What is the next release?” If 2017.1 is out, 2017.2 will be the next
We are running an experiment for multiple tools at the moment to see how it will work.