Programmers vs. Scientists on Coding
Just read this great short tidbit about how programmers see software versus how scientists see software. http://www.johndcook.com/blog/2011/07/21/software-exoskeletons/
It's not something I ever thought about, not having worked with scientists, but it makes total sense. A scientist just wants to get their results. They can open a Python shell, import numpy and scipy, connect to the database, and have the results they need spit out with just a few more lines. That will make them very happy.
But copying and pasting those lines into a text editor is nowhere close to actually making a piece of software that anyone can reuse. There's only about a thousand things that need to be added to it to make it an actual usable program. Validating the input data alone is going to be a ton of work, depending on the complexity.
It's kinda weird when you think about it. You would think that programmers would be the ones who wouldn't mind having such an unfinished program that it would only work when actual programmers are operating it by hand. In reality, programmers are the laziest and they want the software to work on its own without any people touching it. Scientists just want the results as fast as possible regardless of any other factor.