So we know that version numbers important, but for whom?Software version numbers are there for the management of the software through all of the processes that follow the code being written. We need to know what code is being tested, we need to know what code the user has signed off, and we need to know what features are being delivered to the end user. The only person that doesn't need to know about the version number is the user themselves.
How do we keep our version number unique?The version number of a .Net assembly is made up of 4 sets of numbers (Primary, Secondary, Tertiary and Quaternary). We *could* just use four sets of random numbers, alternatively we could make this version number into something more meaningful.
We could use the Primary number to represent the primary functionality offered by the product. When there is a significant upgrade to the functionality, perhaps the number could increment based in the completion of an epic story. Given this, the product manager is able to understand what his product is offering based on this number.
We could use the Secondary number to represent incremental updates to the existing functionality. These would be enhancements to existing functions of the system, perhaps indicating project milestones or story completion.