Version Bumping – Is Fast Major Version Bumping a Sign of Poor Design?

semantic-versioningversioning

I started a job as junior programmer a few months ago. The system we are working on has been in production for ~2 years. I wasn't involved in the begging of the system and the design.

One thing I have noticed is that the system major version is already 11.Y.Z. Form my experience working with other systems and libraries, I don't recall seeing a product bumping major version that fast. There are products that have been for years in 1.X.Y, and still receiving features and bugfixes.

Assuming that the semantic versioning is used properly, does this indicate that the system is poorly designed since it makes major breaking changes almost every four months?

Best Answer

Assuming that the semantic versioning is used properly, does this indicate that the system is poorly designed since it makes major breaking changes almost every four months?

Not necessarily.

You mentioned in the comments that this is an internal API. Breaking an API is bad, because you break everybody's code. But for an internal API "everybody" is just "you", and you are perfectly capable of coordinating such API changes with yourself, so the pain that is usually associated with API changes is much less worse.

Also, the average could be massively misleading: maybe they had 11 breaking API changes during the first couple of days of early development and have been stable for 4 years ever since? SemVer does allow you to make breaking changes without increasing the major number if the major number is 0, but it doesn't force you to. Maybe they started using SemVer from day 0, even during the prototyping / exploratory phases?