Shelf-Control : How to Manage Those Development Projects


Computational scientists often delve into the world of code development out of necessity. It often happens when they become interested in problems that can't be solved by the methods readily available to them. If the required software is not commercially available, or if the cost of acquiring the programs is prohibitive, a sometimes viable alternative is writing your own. And while the beginnings are often this humble, the scope of the project can sometimes grow beyond the bounds of the planned development. It's not uncommon for several people working in geographically- distributed research groups to have their hands in a simulation code at any one time. With this "extended-family" approach to software engineering, it can quickly become difficult to keep track of what is going on in all the different regions of a reasonably large code. When researchers find themselves in this situation, they often take a cue from industry and employ some sort of configuration management tool.

A configuration management tool is a software package that allows software developers to keep track of which pieces of the code people are working on and which pieces are stable. Many people in the academic community are reluctant to engage such a utility, but there often comes a point where it just makes good sense. There are several advantages to employing configuration management software, ranging from organizational concerns to enhanced safety.

Large scientific codes often have multiple functionalities, so it's not uncommon for development work to be split along these functional lines and divided among groups of people. This invariably leads to situations where one group works faster than the others, so that one piece of the code changes more often. It can often be frustrating for everyone to try to keep the most current version of the software when all developers are drawing from the same version of the source code. It can be even more of a hassle if everyone is working on the SAME part of the code. There can be duplication of work, a real difficulty in keeping the code current, and even the occasional power struggle! The proper use of a configuration management tool, though, can help everyone keep track of which versions work, which don't, and which need to be integrated with each other.

In the setting described above, in which there are many hands in a code development project, security also becomes an issue. With an "open-code" policy, there is no real accountability for one's actions with a piece of code since there is no record of who accessed the code when. Also, accidental deletion or

The copyright of the article Shelf-Control : How to Manage Those Development Projects in Scientific Computing is owned by Adam Hughes. Permission to republish Shelf-Control : How to Manage Those Development Projects in print or online must be granted by the author in writing.

Go To Page: 1 2

Articles in this Topic    Discussions in this Topic