Software Maturity

Our software maturity model is designed to provide assurances about the quality of software under our stewardship. We’ve aimed to create a model that supports engineers while they’re developing software and users in assessing solutions against defined criteria.

The intention is not to rival full-blown methodologies although we’ve taken into account aspects of standards such as the ISO 25000 series. We think that our model is well suited to the needs of our development community.

Strategic approaches

Our strategy for software sustainability is supporting long-lasting communities of practice in adopting and maintaining mature products, and is based on five complementary approaches.

The model has been developed through the Planets and Scape projects and is now being applied to other leading digital preservation software. A version of the model was published as part of the SCAPE Sustainability Plan.

Quality

Ensuring that software products conform to standards-driven quality assurance.

Quality ensures the development of software inline with the business needs of memory institutions and includes the definition of maturity standards and community review processes.

Visibility

Providing integrated outreach to multiple audiences to maximise discoverability.

Visibility ensures the provision of appropriate information for different audiences to support discovery and take-up of software products. This approach includes offline and online media.

Training

Enabling skills development to further institutional adoption and capacity building.

Training supports the development of staff skills and addresses multiple audiences through a variety of media in building an understanding of software products. This approach includes face-to-face workshops, practical demonstrations, introductory presentations, and online demonstrators.

Open licensing

Using open licences to encourage the adoption and reuse of source code and software.

All OPF software (and non-software) is released under open licences to encourage adoption, reuse, and the contribution of further enhancements back to the community where possible. The licences encourage derivative works to be made available under similar licensing conditions (although not all licenses prevent commercial integration and further development remaining privileged).

Community integration

Integrating project outputs into commercial and non-commercial products and services.

Software maturity and GitHub

All OPF software projects will be subject to the maturity model. The model defines characteristics of a mature product that has been made available for adoption by institutions other than the originating institution and the levels of support that can be expected. All software source code files and their full change history will be publicly available at one of three GitHub locations.

OPF-Production

Software that is in active use in production workflows in one or more memory institutions and is provided with defined levels of support.

OPF-Labs

Software which is still under development by an active community but is not in production use, and is not provided with reliable forms of support.

OPF-Attic

Software which has been retired, either due to an abandoned approach (where the learning but not the code will be taken forward) or due to a lack of adoption or maintenance.

The software maturity model

OPF-Production OPF-Labs OPF-Attic
Community Active bug reports/fixesNamed maintainerContribution guidelines Active bug reports/fixes [no expectation]
Documentation Source code commentsTechnical documentationInstallation manualsUser documentationMicrosite Source code commentsTechnical documentation Statement describing why the software has been retired (by original developer or software curator)
Code quality Test coverage 50% > 80+%Continuous integrationPublishing test results Test coverage c.50%Continuous integration [no expectation]
Deployment Build from sourceDefined platformsAutomated packaging (e.g. DEB/RPM/EXE) Build from source [no expectation]
Support Online demonstratorVirtual machine imageTraining materials [no expectation] [no expectation]
Licensing Defined open source licence Defined open source licence Defined open source licence