For most CPAN authors, version numbering is a pretty simple concept.
You start at 0.01, and you add one each time you do a release.
Eventually some time around 0.28 you sort of run out of things to do, it gets another release here and there, and some time about 0.33 it pretty much doesn't change. It may as well be done.
You recommend the module to people, it works well enough you don't do a release for 2 years. Dozens of other CPAN modules and hundreds of developers quite happily use it.
But what you aren't hearing is that out there in the darkpan and particularly when you have people having to get modules approved for use, there are people that care about versions. They don't know Perl as well as you do, they aren't inside the "mirror ball" (of which this journal is a part).
All THEY see is a version number, and it's a 0.XX. It's not finished. Does this mean it breaks? Or has features missing? Will the author change the module on me in 6 months time and break back-compatibility? Will my boss let me use a module with a version like 0.12? These are all questions that get asked.
The trouble for authors is that, almost by definition, they will _never_ see this happening. If the person had the brains (and sometimes the guts, since some people find contacting authors intimidating) they would ask the author, and you'd tell them it was totally stable.
But since they DON'T ask you, you'll never see them.
So, the answer to the question I hear from time to time from authors, "What's the version number got to do with it?" is "Because sometimes the version number is all people have to go by!".
So we have two choices. Lose those as users and keep doing what we are doing, or at some point make the switch to a 1.XX version number. Stealing a habit from another author, I've taken to just switching the "0" to "1" and leaving the second number intact (if it is reasonably low at least) so that those truly in-the-know see what change there has been.
Having chosen to move to 1.XX (assuming you make this choice) the question is then "When should I change to 1.XX?".
So to share my personal guideline for when I move something over, here's my conditions for when I move one of my modules from 0.XX to 1.XX. (I go through and apply this every 3 months or so)
1. The module is feature-complete
2. I myself can't think of any major flaws in the code (although there may be POD and testing nigglies still)
3. The module has been at zero rt.cpan.org bugs for 12 months
The large modules like PPI that need a more controlled 1.000 process are few and far between, and for those the question of "when 1.00" is much more obvious.
But if you are looking at one of my smaller modules, and you see it is at 1.XX, then you can know it's been bug-free for at least one 12 month period.
As a bonus for moving to 1.XX I have reports from a number of authors, and I've seen myself, that the number of users, thank you emails and bug reports can go up significantly after toggling the version to 1.XX.
So there's at least a little bit of empirical evidence for the phenomenom.
If only we had CPAN Statistics (but that's another big kettle of fish).