Jeff Atwood, in his blog mentions this concept.
Perhaps what we need is a model of software accretion. Start
with a tiny fragment of code that does almost nothing. Look on the
bright side — code that does nothing can’t have many bugs! Test it,
and check it in. Add one more small feature. Test that feature, and
check it in. Add another small feature. Test that, and check it
in. Daily. Hourly, even. You always have functional software. It may
not do much, but it runs. And with every checkin it becomes
infinitesimally more functional.
As a model, it sounds quite OK, but I wonder how far this is practicable in complex systems.