Link Search Menu Expand Document (external link)

Good practices

  1. Australia
  2. Canada
  3. Germany
  4. Netherlands
  5. New Zealand
  6. South Africa
  7. United Kingdom
  8. United States
  9. World

This section comprises sections that focus on the technical and development aspects of the RSEs’ work. They aim to understand good practices in developing software.

We chose two broad measures to provide an insight into sustainability: the bus factor and technical hand over planning.

  • The bus factor is a measure of the number of developers who understand a specific software project and could, with only a cursory review of the project, maintain or extend the code. A project with a bus factor of 1 is completely reliant on only one developer. If this developer finds new employment, becomes ill or is hit by the titular bus, then the project will fail. A high bus factor provides some confidence that the project can be sustained even if a developer leaves.

  • A technical hand over plan is used to introduce a new developer to a software project. These plans cover basic information, such as the license and location of the software, a repository, a description of the software architecture, a summary of development plans and any other information that a new developer would need to understand the software. A project that has written (and maintained) a technical hand over plan can withstand the departure of a developer, even a key developer, significantly better than one without such a plan.

Developing software requires a set of good practices to ensure the quality of the subsequent analysis as well as the robustness of the developed software, to name a few of important aspects. We wanted to see if the implementation of some simple but essential good practices were a reality beside the bus factor and technical hand over planning.

When developing software, version control and testing can be seen as tool to enhance the quality of the developed software, especially considering the importance of code review and sharing in public funded places such as academia.

For testing, we asked the participants to choose any of the following testing methods:

  • Automated testing with continuous integration
  • Test engineers conduct testing
  • Developers conduct own testing
  • No formal testing but users provide feedback
  • No formal testing

Test engineers conducting testing is the most robust testing method but may not be possible in smaller projects while no formal testing should not occur in any ideal scenario, regardless of the size of the project.

We also asked the participants if they use any version control tools through a list of choice. And finally we asked them which repository they are currently using for their most important project.

Australia

Bus factor

Bus factor for Australia Count Percentage Percentage in 2018 Difference with previous year
1 15 48.39 68.18 -19.79
2 10 32.26 18.18 14.08
3 4 12.9 5.68 7.22
5 1 3.23 3.41 -0.18
10 1 3.23 nan nan

Download CSV

2022-08-22T11:22:37.626999 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Presence of transition plan

Presence of transition plan for Australia Count Percentage Percentage in 2018 Difference with previous year
Yes 8 25.81 10.23 15.58
No 23 74.19 89.77 -15.58

Download CSV

2022-08-22T11:22:37.921621 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Use of version control

Use of version control for Australia Count Percentage Percentage in 2018 Difference with previous year
Git 30 93.75 81.82 11.93
None 1 3.12 2.02 1.1
CVS 0 0 7.07 -7.07
SVN 0 0 20.2 -20.2
Mercurial 0 0 4.04 -4.04

Download CSV

2022-08-22T11:22:38.290359 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Testing strategies

Testing strategies for Australia Count Percentage Percentage in 2018 Difference with previous year
No formal testing 3 9.38 12.12 -2.75
No formal testing but users provide feedback 9 28.12 33.33 -5.21
The developers do their own testing 20 62.5 73.74 -11.24
Test engineers conduct testing 3 9.38 4.04 5.33
Automated testing with continuous integration 15 46.88 0 46.88
Don’t know nan nan nan nan

Download CSV

2022-08-22T11:22:38.713476 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Repository

2022-08-22T11:22:39.741061 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Canada

Bus factor

No data found in survey.

2022-08-22T11:22:40.224633 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Presence of transition plan

Presence of transition plan for Canada Count Percentage Percentage in 2018 Difference with previous year
Yes 4 36.36 20 16.36
No 7 63.64 80 -16.36

Download CSV

2022-08-22T11:22:40.443429 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Use of version control

Use of version control for Canada Count Percentage Percentage in 2018 Difference with previous year
Git 11 100 90.91 9.09
SVN 0 0 18.18 -18.18

Download CSV

2022-08-22T11:22:40.700613 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Testing strategies

Testing strategies for Canada Count Percentage Percentage in 2018 Difference with previous year
No formal testing 1 9.09 0 9.09
No formal testing but users provide feedback 2 18.18 9.09 9.09
The developers do their own testing 7 63.64 81.82 -18.18
Test engineers conduct testing 1 9.09 9.09 0
Automated testing with continuous integration 8 72.73 0 72.73
Don’t know nan nan nan nan

Download CSV

2022-08-22T11:22:41.106065 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Repository

2022-08-22T11:22:41.970464 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Germany

Bus factor

Bus factor for Germany Count Percentage Percentage in 2018 Difference with previous year
0 11 5.09 5.76 -0.67
1 125 57.87 57.29 0.58
1.5 2 0.93 0.68 0.25
2 51 23.61 26.44 -2.83
3 8 3.7 5.76 -2.06
3.5 1 0.46 nan nan
4 4 1.85 1.02 0.83
5 7 3.24 1.02 2.22
8 1 0.46 nan nan
10 3 1.39 nan nan
18 1 0.46 nan nan
20 1 0.46 nan nan
1e+10 1 0.46 nan nan

Download CSV

2022-08-22T11:22:42.803976 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Presence of transition plan

Presence of transition plan for Germany Count Percentage Percentage in 2018 Difference with previous year
Yes 22 10.14 16.22 -6.08
No 195 89.86 83.78 6.08

Download CSV

2022-08-22T11:22:43.114520 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Use of version control

Use of version control for Germany Count Percentage Percentage in 2018 Difference with previous year
Git 208 80.62 78.98 1.64
SVN 19 7.36 28.23 -20.86
None 9 3.49 6.61 -3.12
Mercurial 2 0.78 4.5 -3.73
CVS 1 0.39 3.9 -3.52

Download CSV

2022-08-22T11:22:43.471270 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Testing strategies

Testing strategies for Germany Count Percentage Percentage in 2018 Difference with previous year
No formal testing 30 11.63 14.11 -2.49
No formal testing but users provide feedback 64 24.81 34.83 -10.03
The developers do their own testing 155 60.08 77.18 -17.1
Test engineers conduct testing 6 2.33 4.2 -1.88
Automated testing with continuous integration 128 49.61 0 49.61
Don’t know 2 0.78 0 0.78

Download CSV

2022-08-22T11:22:44.014109 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/

PNG SVG

Repository

2022-08-22T11:22:45.790954 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/