I'd say that if you have carefully thought out your requirements, and have designed your application so as to meet these requirements, then you are on the way to a job well done.
If a requirement changes in the future, will your design allow you to handle it?
The second part to it has to come from the users. If it's being used, what are the users' feedback? If it adds value to the user's life/work, then it's well done.