Coding frequency and tools

Coding frequency

We asked our respondents, “In my current role, I write code to complete my work objectives _____”.

Show chart Show table
Coding frequency Count
Never 32
Rarely 34
Sometimes 51
Regularly 79
All the time 73
a Sample size = 269

Access to and knowledge of programming languages

For each of the most popular programming languages from last year’s CARS data, we asked respondents to answer “yes”, “no” or “I don’t know” for the following statements:

  • I know how to program with this tool to a level suitable for my work
  • This tool is available to use for my work

Knowledge of programming tools

Show chart Show table
Programming language Yes Don't know No
C++ / C# 16 17 236
Java / Scala 19 16 234
Javascript / Typescript 19 17 233
Python 109 9 151
R 155 6 108
SAS 74 11 184
SPSS 94 15 160
SQL 136 18 115
Stata 39 12 218
VBA 69 22 178
a Sample size = 269

Access to programming tools

Show chart Show table
Programming language Yes Don't know No
C++ / C# 20 159 90
Java / Scala 24 165 80
Javascript / Typescript 32 159 78
Python 171 50 48
R 223 24 22
SAS 116 93 60
SPSS 99 100 70
SQL 170 72 27
Stata 60 135 74
VBA 134 100 35
a Sample size = 269

Access and knowledge gaps

We used the above data to calculate the number of respondents who have access but no knowledge, access and knowledge, and knowledge but no access for each programming language.

Show chart Show table
Programming language Access only Access and knowledge Knowledge only
C++ / C# 14 6 10
Java / Scala 18 6 13
Javascript / Typescript 23 9 10
Python 82 89 20
R 76 147 8
SAS 52 64 10
SPSS 41 58 36
SQL 49 121 15
Stata 40 20 19
VBA 69 65 4
a Sample size = 269

What are people using code for?

We asked respondents what data operations they do in their work, and whether they use code to do them.

Show chart Show table
Data operation I do this without coding I do some or all of this by coding
Data Analysis 43 207
Data Cleaning 37 165
Data Transfer / Migration 39 84
Data Visualisation 72 157
Quality Assurance 82 146
a Sample size = 269

Coding capability

We asked respondents a series of questions about whether they feel their coding ability is improving in their current role and where they first learned to code.

Change in coding ability during current role

Respondents who had coding experience outside of their current role were asked whether there has been a change in their coding ability during current employment.

Show chart Show table
Coding ability changes Count
Significantly worse 10
Slightly worse 20
No change 24
Slightly better 70
Significantly better 76
a Sample size = 200

Where respondents have learned to code

Respondents were asked whether they had coding experience outside their current role and, if so, where.

Show chart Show table
First coding experience Count
In current role 67
In education 124
In private sector employment 7
In public sector employment 16
Self-taught 34
Other 3
a Sample size = 254

Coding practices

We asked respondents to report how often they make use of each of the coding practices. Please note that while there are many different coding practices listed below, we understand that not all are proportionate for every coding project.

General coding practices

Show chart Show table
Percent
Question I don't understand this question Never Rarely Sometimes Regularly All the time
I use open source software when programming 8.4 17.7 10.1 14.8 27.0 21.9
I follow a standard directory structure when programming 29.1 5.5 8.9 21.1 26.6 8.9
I follow coding guidelines or style guides when programming 5.1 7.2 9.7 26.2 37.1 14.8
I use a source code version control system e.g. Git 13.5 37.1 15.2 14.3 8.4 11.4
Code my team writes is reviewed by a colleague 1.3 8.9 16.0 29.1 21.9 22.8
I write repetitive elements in my code as functions 4.2 11.4 10.1 24.1 32.1 18.1
I collect my code and supporting material into packages 15.2 43.5 13.1 13.1 10.1 5.1
I unit test my code 27.8 29.1 10.5 13.1 13.5 5.9
I write code to automatically quality assure data 4.6 31.2 16.9 26.2 13.5 7.6
My team open sources its code 20.3 50.6 10.5 12.2 4.2 2.1
a Sample size = 237

Documentation

Show chart Show table
Percent
Question I don't understand this question Never Rarely Sometimes Regularly All the time
Analytical Quality Assurance (AQA) logs 20.3 43.5 12.7 9.7 7.6 6.3
Data or assumptions registers 26.2 36.3 11.4 13.1 7.6 5.5
Documentation for each function or class 13.1 23.2 16.5 21.1 18.1 8.0
Code comments 2.1 5.1 1.3 4.6 29.5 57.4
Flow charts 5.9 38.4 19.4 27.0 7.2 2.1
README files 7.2 28.7 14.8 29.1 13.5 6.8
Desk notes 13.5 18.6 9.7 22.4 24.5 11.4
a Sample size = 237

Reproducible workflow packages

We asked respondents “do you use reproducible workflow packages e.g. drake, make or pymake?”.

Show chart Show table
Use reproducible workflow packages Count
Yes 5
No 124
Don't know what they are 108
a Sample size = 237

Source control platform

The number of users of each source control platform.

Show chart Show table
Version control platform Yes
GitHub 67
GitLab 45
BitBucket 8
AWS CodeCommit 0
Cloud Source Repository (Google Cloud) 8
a Sample size = 237

RAP knowledge and opinions

Knowledge of RAP and RAP champions

We asked our respondents whether they had heard of RAP and what their knowledge is of their own department RAP champion.

Show chart Show table
RAP champion knowledge Count
Have not heard of RAP 122
Heard of RAP, have not heard of RAP champions 37
Heard of RAP, does not know department champion 58
Heard of RAP champions, no champion in department 4
Knows department RAP champion 41
a Sample size = 269

Opinions on RAP

We asked our respondents who had heard of RAP the extent to which they agree with the following statements:

  • “I understand what the key components of the RAP methodology are”
  • “I feel confident implementing RAP in my work”
  • “I think it is important to implement RAP in my work”
  • “I feel supported to implement RAP in my work”
  • “I know where to find resources to help me implement RAP”
  • “I and/or my team are currently implementing RAP”

The figure and table show the percentage of respondents who picked each response option. Percentages are out of a sample of respondents who said they had heard of RAP.

Show chart Show table
Percent
Question Strongly disagree Disagree Neutral Agree Strongly agree
I understand what the key components of the RAP methodology are 4.1 23.8 16.3 39.5 16.3
I feel confident implementing RAP in my work 15.0 26.5 21.1 29.9 7.5
I think it is important to implement RAP in my work 2.0 4.8 19.7 45.6 27.9
I feel supported to implement RAP in my work 8.2 18.4 36.1 25.9 11.6
I know where to find resources to help me implement RAP 11.6 36.1 19.7 21.8 10.9
I and/or my team are currently implementing RAP 14.3 27.9 28.6 18.4 10.9
a Sample size = 147

RAP scores

RAP components

The frequencies for each RAP component below are derived from a series of questions on coding practices (see the coding practices page). These were used to calculate scores for each component (0/1) where respondents answered “regularly” or “all the time” to the relevant questions. The list of RAP components used here is based on the RAP minimum viable product guidance agreed by the RAP champions network.

Show chart Show table
Component Type Count
Documentation Basic 46
Peer review Basic 106
Team open source code Basic 15
Use open source software Basic 116
Version control Basic 47
Code packages Advanced 36
Continuous integration Advanced 32
Dependency management Advanced 39
Follow code style guidelines Advanced 123
Function documentation Advanced 62
Functions Advanced 119
Unit testing Advanced 46
a Sample size = 237

Basic RAP scores

Show chart Show table
Basic RAP score Count
0 91
1 83
2 53
3 28
4 13
5 1
a Sample size = 237

Advanced RAP scores

Show chart Show table
Advanced RAP score Count
0 62
1 46
2 40
3 45
4 27
5 14
6 3
a Sample size = 237