When we develop software for our research, we normally want it to be ready
there and then, because our main interest is the science we will research
with it. This means we don't bother with things that are not needed to run
the code, but that are essential for it's longer term maintenance and
development: documentation, inclusion of comments on the source code itself, development of a testing suite, etc..This issue was highlighted not long ago by
Nature