Do we unnecessarily complicate things?

Today I was thinking of establishing a clear versioning system for one of the projects I'm managing. Usually I start such kind of activities with research of past experience on the Internet. I did so this time and found a bunch of interesting links. Here are some to name a few:

  • Software Versioning article at Wikipedia provides good overview version numbering schemes adopted for different products. Also interesting is discussion of political implications of software version numbers.
  • Eclipse Version Numbering discusses the topic as applied to Eclipse platform. It nevertheless gives a good reasoning behind one particular scheme and show what software engineer needs to think about with regard to versions and configuration management approach.
  • Which Version of Version? Also describes one particular versioning scheme.
  • What's In a Version Number, Anyway? Raises usability concerns of version numbers for mere mortal software users. Microsoft Office versioning approach is also discussed here. Additional point of interest is comments to this post.
  • Decoding Office Build Numbers. Description version numbering scheme currently used by Microsoft Office products.

I generally agree with Jeff's ideas that versioning often is overly complicated and confusing for end-users and even sometimes for developers themselves. I think developers' love for "magic" numbers and words comes from natural human's desire to differentiate from other humans. In this case developers differentiate by possessing knowledge about all those tricky version numbering approaches which are hardly comprehensible by mere mortals.

Albert Einstain once said "Things should be made as simple as possible -- but no simpler." I believe we should follow his advice in giving versions to our products.