Thoughts on "Software Engineering for Scientists"

I just read the article "Software Engineering for Scientists" and I think it makes some incredibly excellent points regarding software development in the scientific community. There are two particular issues to point out.

First, the clarity and the ability of code to communicate intent clearly are very important. If I could only find a way to articulate how important clarity and communication are for code stability, I would, but I find that anything I say does not express this clearly enough. So, from the article:

"There’s 60 years of existing scientific knowledge buried in code and it’s extremely difficult to extract. As scientists write new code, they need to clearly ex­press intent in a way that doesn’t affect code performance. Code structures are one way to help capture intent and knowledge, yet they don’t impede performance."

Second, results of what you code must be verified somehow. Again, from the article:

"One panelist pointed out that testing results in “reviewing the output instead of reviewing the code.”Everyone agrees that code review is a good idea. However, it’s difficult to incorporate code review into work practices without the large overhead it commonly entails."

So, if you are writing code, please consider the clarity and intent of what you are writing. This is important and will save many developers, scientists, and others hours of wasted time. Also, if you write scientific code, please share it with the community. Critiquing code, verifying results, and extending algorithms would be much easier if there was a real atmosphere of cooperation out there.

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Trackbacks and Pingbacks: