SORTÆD: Software Role Taxonomy and Authorship Definition


Flow of resource contributions

Software authorship

Developing research software is a dynamic, agile and collaborative effort, involving a spectrum of contributions. Examples of contributions include project management, software engineering and reporting bugs. Each of these contributions has varying impacts on the software.

The objective of Software Authorship is to give a set of definitions, guidelines and criteria to distinguish authors from non-author contributors of the software. Because of the dynamic nature of software development and maintenance, contributors may transition to and from author status as the software evolves.

By defining authors and non-author contributors, appropriate credit and citation and be given when using the software.

Who is an author?

SORTÆD recommends that software authorship be based on substantial contributions to:

  1. the conceptualization of the software; OR
  2. the source code, documentation and metadata, test code, setup or build configuration of the software; OR
  3. maintaining the software or safeguarding the continued existence or sustainability of the software project.

In contrast to authorship of textual research outputs:

  • software authorship is NOT based on approval of software versions to be released or published;
  • software authorship is NOT based on agreeing to be accountable for contributions to the software beyond legal accountability, in ensuring that questions related to the quality and integrity of the software are appropriately investigated and resolved.

All those designated as authors should meet one of the three criteria for authorship, and all who meet one of the three criteria should be identified as authors. Those who do not meet one of the four criteria due to the insubstantiality of their contribution should be acknowledged as contributors (see below). These authorship criteria are intended to reserve the status of authorship for those who deserve credit.

The responsibility for identifying who meets the authorship criteria lies is part of the governance of the software project, which may choose to recognize authorship beyond the SORTÆD criteria.

If agreement cannot be reached about who qualifies for authorship, the legal owners of the software should be asked to investigate.

Non-author contributors

Contributions to software can be made in different roles. Depending on the type of the contribution, contributors can be eligible for authorship if the contribution is substantial (see above).

Contributors who do not meet the above criteria for authorship should not be listed as authors, but they should be acknowledged. The roles that constitute contributorship are detailed in the following.

Software contributor role taxonomy

Coordinates the project effort, possibly across organizational boundaries
Examples: Coordinator, project manager, advisor, team leader
Provision and maintenance of resources used and exposed by the software project, like computational infrastructure and cloud systems
Examples: System administrator, cloud manager
Acquisition or management of funding for effort and events that sustain the software
Examples: Principal Investigator, work package leader
Communication with end-users and stakeholders
Examples: Training, community manager, user support
Writing of the backend and frontend code as well as managing dependencies, making the software ready for release
Examples: Programmer, maintainer, UX designer, release manager
Data curation
Integration of data in the software and ensures metadata is annotated and available
Examples: Data provider, statician, data manager
Unit test, usability, integration tests, release test
Examples: Reviewer, reporting user
Writing of all documentation related to the software, including user guidelines, roadmapping
Examples: Technical writer, metadata curator
Formulation of the idea and goals of the software, design of main features and functionalities
Examples: Principal Investigator, Architect, graphical designer, release manager, requirement gathering

Roles in software