A friend pointed me to a really cool blog post called The Larry Test. It basically talks about when done is Done. I.e. an engineer will keep working stuff until it's perfect, likely because it's in our nature (I can't tell you how many times I've rewritten code just so it looks better). It's a pretty good piece on identifying what things absolutely need to be done and working so you can say you're "Done". I suppose from a developer's perspective, this would be a use-case for milestones.

Anyways, it's an interesting read.