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