I always start with '0.01' and go up from there. Then, generally, I have a major API/featureset upgrade. That's when I roll over the numbers to 1.00, then go up from there.
Only once have I ever released a module at 1.00 and that was Class::Lazyload. I did it that way because the featureset was so limited and the testcases mostly obvious, so stvn and I could inspect and figure we'd covered almost everything.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?