Search: 
 

Home
Overview
Search
Mailing lists
Forum
FAQ
 

Overview

The importance of good software practices in academia is not to be underestimated. Software is used by more and more EE research projects to explore research areas. Published software should be looked upon as a form publication similar to publishing a paper.

When students leave the university, they often continue developing software in industry. We should be training students on platforms and products similar to what they will use, and we should train students in modern software engineering techniques where we can. We should favor common off the shelf (COTS) tools where ever we can, and avoid custom, baroque, hard to maintain tools.

The process of releasing research software has many benefits

  • Software is actually finished with a specific set of features.
  • Documentation and tests are written.
  • A stable snapshot is created for users who do not want to ride the tiger of development.
  • A release gives a team a concrete deadline, and is a good way to handle the graduation of students.
  • Sponsors can see concrete results in the form of software downloads and documentation.
  • The release effort needs to be intimately associated with the development effort. It can be very difficult to pull together a package that was not developed with a release in mind. Such software is usually poorly documented, has few tests and is very disorganized.

    With the advent of 'Internet Time' releases, where companies such as Netscape had two separate development teams working on a leap frog system of releases, the line between release and development has blurred.

    If nightly builds are used, then in effect, a release is created every day. The nightly build release can be valuable for quick developers releases to interested parties. If nightly builds are done, then changes that break the build are quickly identified, and developers can quickly fix them.

    If GSRC software groups follow a common set of standards, then it will be easier to cooperate and use each other's work. If there are no GSRC-wide standards, then each group will have to spend time determining their own standards for software development. It would be even worse for groups to have no standards, and that are just hacking away as heroic programmers running from fire to fire.

    Acknowledgements

    This document came about from work with John Reekie and Edward A. Lee, and a very good discussion with Igor Markov.
     
    You are not logged in
    ©1998-2008 GSRC