One of the frustrations of managing software development is that different people have a different idea of what “Done” means. It can range from “It compiles and it’s checked in”, to “It compiles, and all the unit tests pass, and new unit tests were added for the new functionality, and the documentation was updated, as was the issue tracking system, and the QA guys signed off on it”. This is especially a problem with Agile development, because so much rides on a common understanding of the state of the software.
Alixx Skevington recently posted an article in the Agilistas group on LinkedIn called My Manifesto of done. It’s an interesting read, and a good start. He’s flagged it as a draft, so I don’t say that as a criticism. I know I’m going to follow that discussion (I’ve already contributed to it). Hopefully it will turn into something that companies can point a finger at and say “Do this”.