Program construction consists of a sequence of refinement steps.
Usually its users discover sooner or later that their program does not deliver all the desired results, or worse, that the results requested were not the ones really needed.
But active programming consists of the design of new programs, rather than contemplation of old programs.
Reliable and transparent programs are usually not in the interest of the designer.
Programs should be written and polished until they acquire publication quality.