Strategy Document

Program To Provide Fermilab Software to the Community

May 16, 1994

J. Nicholls, D. Petravick, R. Pordes, F. Rinaldo, B. Schermerhorn, V. White, M. Wicks

Abstract
At the request of Joel Butler, Head of the Computing Division, we propose a strategy for making software developments at Fermilab available to governmental, educational, and commercial organizations. An accompanying document will detail the plans for implementing this strategy.

1.0 Introduction

Our Goal is to provide to the general community software that has been developed by the Fermilab Computing Division, found to be useful and worthwhile by our immediate user community, and which the Computing Division has ascertained is of sufficient worth to offer to the community at large, consistent with the mission of the laboratory.

In offering this software, the Computing Division will implement a process for providing the software and documentation; a process for communication and feedback for the users; understand the issues concerning support and maintainance of the software; and participate in an outreach program to bring the software to the attention of potential users.

This strategy report and accompanying implementation plan address the following issues:

  • Strategy for identifying Software to be offered to the community - what kind of software is to be made available.

  • Distribution Strategy - how the software is to be made available and distributed.

  • Outreach - how the information about the Program is to be disseminated and actively brought to the attention of the community.

  • Legal and Liability Issues - clear statements of government sponsorship, origination and disclaimers for the software packages, as well as terms and conditions for use and support.

  • Management of the Program - process of proposal, inclusion, oversight and removal of software packages to be offered.

  • User Expectations - what commitments and expectations should the users of the software have.

  • Software Provider Responsibilities - what are the commitments and expectations of the providers of the software.

  • Standards to be applied to the Software - what files, documentation, tests, etc, will be provided with the software. These give objective checks and standards which the software will meet.

2.0 Offering Fermilab Software to the Wider Community

2.1 Purpose

We are offering Fermilab Software to the Community in support of the laboratory's mission. Our purpose is to create and sustain demand for collaboration in the laboratory's software development efforts among governmental, educational, and commercial organizations. Generally such software is made available to those who wish to use it and/or contribute in a collaborative way to its further development, allowing Fermilab to gain at least one of the following benefits:

  • Create a larger user community than would otherwise exist, as part of a cost-effective process to allow improving and developing the software's functionality and quality, and to feed back into the developments of future versions of the software.

  • Influence the state of the art by providing others with the tools developed by Fermilab and its collaborators, especially where the tools help use a product or implement a process developed at Fermilab.

  • Gain recognition for the laboratory's excellence in a technical area related to the mission of the laboratory, for the purpose of attracting the attention of future collaborators and quality employees.

  • Because Fermilab expects to receive specific benefits from offering its software to external users, there is a level of commitment from the Computing Division to acknowledge and support the need for reasonable service for its' users.
We propose offering software to the community through the Fermilab Software Tools Program outlined below.

2.2 Technical Requirements

Software offered to the community can be any software package for any computer platform that conforms to the strategy and implementation requirements of the Program - from small stand-alone programs to large multi-part software systems.

Fermilab developed software that depends on the acquisition of commercial or other non-Fermilab software for its use may be included, as well as software packages that require development of additional application code in order to be used.

The software packages must consist of well defined, internally released versions of software having general utililty, which continue to undergo active development as a consequence of their importance to the laboratory's mission.

The requirement of active development means that the Software Provider organizations are easily identified as those responsible for the software within Fermilab.

Software to be offered to the community must have a proven record ofbeing accepted and found worthwhile by the laboratory's internal clients.

When the benefits to the laboratory associated with making the software available no longer apply, commitments to those using it shall be terminated as described in the terms and conditions statement accompanying the distribution package, and the software need no longer be supported to outside users or collaborators.

3.0 Distribution Strategy

The Software to be offered to the community shall be easily and freely available through an identified location on the Internet. Tracking mechanisms shall be in place to monitor when software is distributed from Fermilab.

Documentation on and information about the Fermilab Software Tools Program, its policies and software included within it shall be actively presented and disseminated to the community and brought to the attention of potential collaborating software development and user organizations through outreach activities.

4.0 Outreach

An integral activity required for the success of the Fermilab Software Tools Program is that of outreach. By moving into a visible role as a significant force in the development and perfection of software, Fermilab will achieve the recognition for its efforts that is deserved.

Outreach requires a willingness and commitment to be proactive in promoting the programs that offer the software. Fermilab Software Tools addresses the first. Participation in the Technical Briefings outreach program one part of the second. The Technical Briefings Program is described in a separate implementation document.

5.0 Legal and Liability Issues

Software offered to the community through the Fermilab Software Tools Program is considered to be at a stage of development that is suitable for trial or beta-site use in production environments. That stage is also characterized by the need for feedback from outside users to enhance and direct future development or modification efforts. This is, in fact, a key motivation for this effort.

The terms and conditions under which the software is offered must be clearly stated within each software package. It is important that users recognize the software's origins, the government's sponsorship under which it was developed and the expectations of all parties involved.

To accomplish this, statements must be included in each software package made available under this Program which will:

  • identify its origin as Fermilab and other development organizations as appropriate

  • acknowledge the work as being done under government sponsorship

  • indicate that any existing title to the software is not tranferred through its inclusion in this Program

  • specify the support strategy for each specific software package, while not committing to any specific level of support for a particular user

  • make the appropriate liability disclaimers, such that no developer can be construed to have liability for the use of the software

  • request that an acknowledgment of the software's origin be made when its use is referenced, as is customary scientific and professional courtesy

  • request user feedback to be directed in a specific manner
These statements will appear embedded in the software and will also be included on copies of any documentation such as user and reference manuals. Terms and Conditions, and Disclaimer statements within the Fermilab Software Tools software shall be approved by the laboratory legal department. The implementation plan for this Program contains these required notices and statements.

All authors contributing to the creation of the software must be acknowledged. This may be done in one of two ways: by referencing their work as published in the bibliography of the documentation if possible, or by including a complete list of authors in an 'Acknowledgment Statement' in the documentation. Documentation here refers to both printed and electronic forms.

6.0 Management of the Program

Responsibility for the Fermilab Software Tools Program and authorization for inclusion of software within it rests with the Head of the Fermilab Computing Division.

An Oversight Committee will be established by the Head of the Fermilab Computing Division to handle the bureaucratic and technical aspects of management of the Program. The Oversight Committee shall meet on a regular basis. Its' responsibilities shall include review of feedback from Users and Software Providers.

The Oversight Committee shall ascertain that software submitted to the Fermilab Software Tools Program satisfies the criteria for inclusion. It shall organize an announcement of the eligible software at a Computing Division Status meeting. The Computing Division Head may authorize further review and audits.

7.0 User Expectations

Users of the Fermilab Software Tools offered to the community are required to abide by the terms and conditions distributed with the software. They are expected to provide acknowledgement of the origins of the software. They are expected to provide feedback on its use to Fermilab. If users further develop or enhance the package they are strongly encouraged to make the resulting software available to Fermilab through the Fermilab Software Tools Program.

Users of software offered under the Fermilab Software Tools Program can expect support at least to the extent of acknowledgement of communications about the software.

8.0 Software Provider Responsibilities

For the purposes of this Program, a Software Provider is an identified group or department.

A Software Provider should expect to provide a level of support for its software included in the Fermilab Software Tools Program consistent with guidelines given by the Head of the Computing Division and the appropriate line management.

A Software Provider shall abide by the Fermilab standard established policy with respect to providing external consulting services for the software included in the Program.

A Software Provider may be expected to present its software to user and community organizations.

9.0 Software Standards

Software to be included in the Fermilab Software Tools Program must satisfy standards as developed by the Oversight Committee. These standards will include requirements on inclusion and format of source code, scripts, test programs and documentation. Additionally statements detailing the support, user commitment, legal, liability and "Policy" issues associated with distribution and use of the software must be included in each software package.

Software from Fermilab or contributed by outside developers that does not meet these defined standards will be excluded from the Program until the deficiencies are addressed.


last modified 05/16/1994   fermitools_support@fnal.gov
Security, Privacy, LegalFermi National Accelerator Laboratory