Tell us about the software preservation program at your organization.
Software preservation is a continuing need at MIT. MIT Libraries preserves the scholarly research outcomes of the Institute, which are often comprised of software or software-dependent data. We also have many archival collections with software and software dependent records. Some of these collections represent well-known achievements in both the history of the Institute and software development itself. Some of the earliest code in our collections were only recorded on paper print-outs or punch cards and this is how they were stored as permanent records.
With these different software preservation needs, it continues to be a collaborative effort at the MIT Libraries with software developers thinking about technological solutions, liaison librarians providing advice on best practices in code and reproducible research, archivists curating and appraising new records, and digital preservation ensuring suitable strategies for long-term access.
What has your organization accomplished recently that you’re proud of – big or small?
We recently finalized an arrangement for access to code through data-mining—the code was encumbered by many privacy issues in parts of the data that were of little interest to researchers. Through use of legal agreements, we can now grant researcher access with precautions in place that protect privacy for non-relevant material. This process has allowed one particular researcher to work on a project that involves creating an emulator of an early computing system, so this in itself fosters preservation and access at the same time! We’re proud that we’ve been able to preserve and now provide access to the corpus of data within which the code snippets are saved.
Tell us about a challenge that your organization is facing in its software preservation work or that the field is facing as a whole?
A challenge of software preservation is determining what exactly we need to preserve and the appropriate means to meet this goal. Are we preserving the source code or the compiled executable? Are we providing access to working software, documentation showing how it worked, or both? What about supplementary material for the software?
Software preservation could expand out to fit any number of approaches. Different contexts will require different methods and the challenge is to develop reusable approaches that will work for resource-burdened institutions and meet user needs. Informed by our legacy software preservation needs, it would be great to have a timeline of software development. Mapping specific software languages and titles to specific years would help archivists make preservation and access decisions for the software in their collections.
Name a software title or library that is particularly significant for one or more of your user constituencies, and tell us why that title or library is particularly significant.
The LISP programming language is a particularly important piece of software in our collection as it was created at MIT and was one of the earliest high-level program languages (introduced more than 60 years ago). It spawned various follow-ons and is still in use today.
Why is collective action the best approach to software preservation?
The development of good practice for digital preservation has demonstrated that any activity as complex and multifaceted as software preservation cannot and should not be undertaken by one person or one institution. Software itself is dependent on other pieces of software and code and the understanding of the context in which it’s created.
Only by working together will we be able to preserve a portion of software and build the networks and procedures to get it done. It is through collective action that we also practice an ethic of care for each other—enabling contributions of the many as their capacity allows without overburdening anyone.