It is never done

If you have been using the Internet for a while, you'll notice there are some web sites and applications that are labeled beta. It basically means the software is still under development and things can or rather will break-down but the developer can choose not to give any support. Obviously, I don't encourage you to release beta products so you can refuse to support it but it does help you to release something early and fast. It's a license to dump your idea to the public and find out for real if it works or not.

The beta label can also serve as a reminder that your product is not finished and might never be but that's a good thing. It means there's always room for improvement.

By revealing your product to others, you get to collect feedbacks, suggestions and if you're lucky some will even contribute and collaborate with you to make it better. This is basically how open-source software development is done.

If you are working an idea, start early and remind yourself that it is never done but that's alright.