Standard Operating Procedures for Imperial College Central RSE Team

View the Project on GitHub ImperialCollegeLondon/RSE_SOPs

SOP-01 - Standard Operating Procedure for Software-Oriented Project Work

1. Authorship

2. Version record

Version Number Effective date Reason for change
0 15 Sep 2021 Creation of the SOP
0.1 3 Nov 2022 Move to Markdown

3. Glossary

4. Introduction

Standard Operating Procedures (SOPs) are succinct formal documents designed to achieve consistency in specified functions by defining a standard practice in performing those functions.

This document forms part of the set of Standard Operating Procedures (SOPs) of Imperial College RSE Team, part of the Research Computing Service (ICT) and describes the roles, responsibilities, and actions necessary for the effective definition and management of software-oriented project work.

5. Purpose

This SOP describes the principles of project work within the RSE Team that is mostly software oriented. There is separate SOP (SOP-02) for those projects mostly about training, mentoring and support researchers to create better software themselves. Some projects might have a mix of both aspects. For those cases, relevant aspects of the two SOPs will need to be considered.

This SOP covers the project initiation, planning, execution, monitoring, control, closure, and potential follow ups. It also describes the actions and responsibilities required to undertake these steps, as well as the tools, documents, and methods to be employed.

To engage researchers effectively, the RSE Team needs to have some degree of flexibility in the implementation of these procedures. Therefore, while this SOP defines the steps that must be follow for each project in principle, there is scope for reasonable adjustments should the specific project require them, and assuming they are properly justified. Those situations will be evaluated on a case-by-case basis.

6. Roles and Responsibilities

7. Procedure

The following diagram shows in brief the timeline of a typical engagement. The duration each stage varies depending on the size and nature of the project.

Software projects workflow

7.1. Project initiation

A project starts with an Imperial researcher getting in touch with the RSE Team. This first contact might follow different routes, including:

The members of the RSE Team might also actively seek new leads by contacting researchers or groups of them (e.g. part of large consortia or Global Institutes) if the opportunity arises.

A senior member of the RSE Team will be designated as the Project Leader (PL) and will oversee setting up an initial meeting with the Research Leader to find out more about the software and the overall scope for the project.

The specific actions for the PL at this stage are:

This step is all about the PL gathering all the relevant information about the software – and the project as a whole – to decide if we can go ahead with the project. The specific questions that need answering are:

A more exhaustive list of questions that could help with the project approval process are included in Appendix: Project selection criteria

Therefore, this stage is a mixture of reviewing existing code, reading through web pages and other resources, and talking to the researchers to find out any details we might need to answer the questions above.

If the software already exists, this stage usually starts as a lightweight version of a FIXME:Code Audit, followed by a discussion with the RL and the Research Team to find out about the specific requirements that the new software should fulfil.

All this information should be captured by the PL in the Wiki for the project.

Both the RSE Team Lead and the Technical Lead should be involved during or after the information gathering process to help answering the above questions, considering their broader understanding of the commitments of the RSE Team and the technical resources available within ICT and Imperial.

If the answer is positive, in principle, the project moves to the next step, the planning of the project proposal. Otherwise, the Project Leader will inform the Research Leader of the reasons why the project cannot be accepted at this time, looking always for a constructive way of supporting their needs – pointing them to other resources they might be able to use, to other teams or consultants who could potentially help them, or suggesting ideas to reformulate the project so we can take it (or parts of it). (FIXME: mention OSB and Code Surgeries.)

7.2. Planning of the project proposal

Planning and writing the project proposal is an iterative process to be written together with the Research Leader any relevant member of the Research Team, as well as the RSE Team Lead and Technical Lead when appropriate. It aims to:

Most projects have one or more milestones and very big projects are further divided into different phases. During this stage, we also agree on the split of responsibilities between teams and how they will communicate during the lifetime of the project.

Other aspects that will be addressed during the planning stage relate to the license of the software and potential commercialisation. Check the Legal Information section of the RSE Team webpage for more details about this.

Generally, the project should be planned in units of 0.35 FTEs per month (6.5 days/month). More than 0.7 FTEs per month is possible but it may take longer for the project to be allocated (see below).

The Project Template contains all the relevant sections that need to be completed, with hints on how to complete them, as well as some fixed sections containing information of our Development Principles or about the Intellectual Property of the work we do.

When starting this stage, the Project Leader will create a copy of the Project Template in the SharePoint of the RSE Team under General/Projects/Leads with the name of the project and share it with the Research Leader.

In summary, the end goal of this phase is to define a concrete set of outputs the project will deliver, a timeline for the delivery of the project and its overall costs.

7.3. Funding and Allocation

7.4. Project execution

7.4.3. Start of the project

7.4.2. Day-to-day project activity

7.4.3. Meetings

7.4.4. Reports

7.4.5. Contingency plans

7.7. Project closure

8. References

10. Appendices

10.1. Project selection criteria

The following list compiles more concrete questions that could help to decide to go ahead with a project, and that elaborate on the higher-level questions included in Section 5.2. A project does not need to answer positively ALL of them to go ahead with it, but we should try to give preference to those projects that tick more of them.

A more rigorous evaluation can be done using a Criteria-Based Assessment for software, although such approach is a bit overkilling and probably not suitable for research software, which often scores poorly in most metrics related to sustainability having been developed organically by not expert coders over many years.