A great way to judge whether you're done is to set completion criteria
earlier in the project. Those criteria can cover what it means for major deliverables of the project to be done, and what "complete" for the whole project includes.
Completion criteria are a communication and management tool. For particular deliverables, they provide an important aspect of quality management. At the project and deliverables level, completion criteria help ensure that
all features are included, all required issues are corrected, the right people have been involved in reviews, etc.—whatever criteria are needed for your project to ensure quality and completeness of every key deliverable and that the project goals have been met.
Setting explicit completion criteria ensures that everyone understands the true scope of the project or a particular activity, and that no deliverable—including the overall project—is released before its time.
Completion criteria can also be set by phase or stage of the project. In this use, the purpose is to set very objective measures that gate major interim completion points and handoffs between groups. For example, to ensure that a system is not allowed out of test prematurely, we want to make sure the developers doing integration don't hand the independent QA group such a buggy system that QA spends all their time noting failed test cases and handing the system back to the software group to be fixed! Completion criteria can be used to specify very exactly what state the system has to be in for QA to start their testing.
To set criteria for the entire project, the test point is, are you ready to serve your customer well? Whatever your project is creating, it will produce some deliverable or result that matters to some "customer." The project is done when that result has been created, everyone is sure it's really ready to be given to a customer, and the organization is also ready to deliver it to that customer, support them if applicable, etc. This gets back to the scope of the project defined up front. The project is done when the scope of the project has been executed. That early scope definition should have included whatever the organization needed to create to handle all the aspects of getting this project's deliverables to its customers: creating, delivering, and supporting whatever this project has created.
See our Completion Criteria guidelines for more.