Monday, January 30, 2012

A definition of Done in software development

I was asked a good question today by someone which basically went like this "Can we define anything as done status?". There was an addition after that about from customer perspective but I wanted to tackle the main question here.

So, in Software Development can we ever define anything as done.Yes and No..

Longer answer hehe. So, from an agile scrum point of view. To close a story we have to meet all requirements for definition of done; and those probably would vary from company to company. For my current company that means that the story has been investigated, coded/developed,unit tested, qa tested and documentation written. Now some companies may not have some of this and some may have more but for here that is the definition of done. We meet those requirements, we say story done. However, if during regression testing at issue is found its not strange for them to reopen the story (though I keep insisting that we create a new one). So, that could mean a story is not done.

In regards to a release to a customer. We could do UAT  (User Acceptance Testing) and sign off so in the strict definition we can mark this as done.. However; whilst supporting the product a bug can be found in the functionality and so in the strictest terms the original code is not done as not working.

So, to come back to the question at hand. In a black and white world where we have done and not done. We could say as soon as a customer signs or a story meets criteria we can say its done and up until that points its in not done state. However in the grey world that we live in I can say that things are never done whilst we have that support contract.

So; what do you consider as done and not done? Can we ever truly meet that requirement?

No comments:

Post a Comment