Friday, January 20, 2012

Definition of Done - Learning from a child

As the software development community has embraced agile, Lot of them have adopted scrum as their preferred practice. One of the artifacts of scrum is a 'Definition of Done'. It is quite an important artifact which has a potential to hugely affect the quality of the product.

In last few days, I got a lesson in why it is important to have a proper "Definition of Done" from my 5 year old son.

It so happened that we were getting ready for school in the morning. About 10 minutes before we were to leave, the following conversation happened:

Son : Dad, Can I watch 'Tweenies' on the telly?
Me : You can, for 5 minutes, only if you are fully ready.
Son : Okay dad.

After 5 minutes when we were to leave, I noticed that my son was not wearing any shoes, neither did he have any jacket on and his socks were still drying. Nevertheless, rest of the school uniform was on. I made him realise that 'fully ready' included wearing socks and shoes as well.

Next day,
Son : Dad, Can I watch 'Tweenies' on the telly?
Me : You can, for 5 minutes, only if you are fully ready.
Son : Okay dad, I am. I am wering my shoes too.

After 5 minutes when we were to leave, the school bag did not have the stuff needed for that day...

These 2 examples meant that we either 'delivered' my son to school LATE or in a haste with some RISKY driving along the road or WITHOUT the requisite stuff.

Calmly thinking about this, it gave me a nice insight into why 'Definition of Done' is so important. If it is left to interpretation, we might deliver the software to the market -- either LATE, or AT INCREASED RISK or WITHOUT NEEDED QUALITY.

Though we were late to school, I learnt an invluable lessons about scrum from my son.