Well you must remember that coding programs and maintaining them is a continuous process that really has no end. But you can usually say that a program iteration is complete when it does a few things...
1) All the requirements laid out before the project was started is completed and the deliverables have been met with satisfaction.
2) The code is in a state where it would be easy for someone to come in later and modify if need be.
3) The code has been thoroughly tested for accuracy and completeness.
4) It is well documented for the future maintenance of the program.
5) It is as efficient as possible given the constraints of your resources (time, budget, hardware, company procedures)
So if you have done everything required of the software, documented it, it is easy to read, maintainable, tested, and as good as it can be given your constraints... then you could easily say it is "done".
This post has been edited by Martyr2: 1 May, 2008 - 11:34 AM