Thursday, February 14, 2008

It is infinitesimal, and Done is the Limit

Today, I was reading some articles in InfoQ,,, one of them called my attention:

InfoQ: Does "Done" Mean "Shippable"?

It made remember a blog post a wrote months ago titled "When will that feature in your system be finished"
and here I am wondering... why if this kind of problem is so common... why if it seems to be happening to everyone...
why we don't have some kind of manual to help ourselves to explain others that saying something "is done" has a very
different meaning for different people... for different situations,,,, and, maybe the right answer is that it is never done...

A good system should be able to evolve.... to get new features, to make the current ones more robust...to improve...
I should never be "done" in an static way... it should be able to grow organically... it comes closer and closer to being "done" but it never gets really done... (we could even argue a "done" system is an almost dead system, because it would be a system that can not improve anymore)

Maybe the problem is that reaching the "done" state in software development is like trying to reach a limit in math, we get close, and closer, but if we do things right, we never reach the done state, because we always have things to add, or things to improve.