For me, “done” means that something I have been working on is to the point that I no longer have to work on it, indefinitely. Depending on the nature of the task it could also mean that it’s been shipped to production and again, no longer requires my efforts. I was under the impression that’s how most people interpreted the word and boy, was I wrong.
I’ve been blessed with the opportunity to work with someone that has a completely different definition of the word “done” and “code complete”. For this individual those terms have come to mean a few different things, none of which I can comprehend. Let’s go over some of these new definitions:
“done” - the project is live in production but it’s never worked correctly. Fixes may have been identified but no action has been taken to implement them.
“code complete” - code was copied from one directory to another and not much has been modified since, not even the class name or comment header. You then hand off that task to another developer and let them know it’s “code complete”.
“code complete” - you are finished working on a task, but it still has changes that need to be implemented before it can be shipped.
I know that some projects are never truly complete and done is better than perfect but sometimes you just have to ship some working code and move onto the next task. That being said, I’m done with this post.