It's not done if...
Don't fool yourself and others: it's not done until it's done!
It can be extremely tempting to announce that something is done, essentially because it can make you and others smile and feel good—we've made progress! But if there are still steps to be taken it's almost definitely not going to be seen as done from the point of view of the person or people you're talking to. Saying something is done when it's not at best is not helpful, but at worst makes you seem dishonest.
Here are some examples of what not done can look like, depending on the team or task:
- If there are remaining tests to write or fix
- If QA/review/approval is pending
- If it's not yet released to production
- If no one outside of the team can use it
- If there is documentation to write
- If we're waiting on confirmation that it does solve the problem
If any of these are the case, I suggest using some other language. For example, you can be specific on what's been completed and what's outstanding. And if you're not sure what's outstanding: ask!
You can sometimes say almost done—it is safer than done. But I suggest only saying this occasionally, and only if you have a high level of confidence that it really is extremely close to getting over the line. If you overuse almost done, it will inevitably not be true in some cases, and people will lose trust in you.
Of course, teams should probably have an agreed "definition of done". But even if there isn't one here's one that's applicable to many situations:
It's done when there are no more steps to take