Scientist and programmer here, and my experiences are the opposite
Scientist and programmer here, and my experiences are the opposite. I value keeping things "boringly simple", but I desperately wish there was any kind of engineering discipline. First is the reproducibility issue. I think I've spent about as much time simply _trying_ to get the dependencies of research code to run as I have done writing or doing research in my PhD. The simple thing is to write a requirements.txt file ! (For Python, at least.) Second, two anecdotes where not following best practices ruined the correctness of research code: - Years ago, I was working on research code which simulated a power-grid. We needed to generate randomized load profiles. I noticed that each time it ran, we got the same results. As a software engineer, I figured I had to re-set the `random` seed, but that didn't work. I dug into the code, talked to the researcher, and found the load-profile algorithm: It was not randomly generated, but a hand-coded string of "1" and "0". - I later had the pleasure of adapting someone's research code. They had essentially hand-engineered IPC. …
Original discussionBad scientific code beats code following "best practices" (2014)324 source comments · at import