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 39
Rarely 52
Sometimes 105
Regularly 141
All the time 105
a Sample size = 442

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# 25 21 396
Java / Scala 22 21 399
Javascript / Typescript 35 25 382
Python 142 16 284
R 295 10 137
SAS 204 16 222
SPSS 194 20 228
SQL 276 16 150
Stata 74 20 348
VBA 137 22 283
a Sample size = 442

Access to programming tools

Show chart Show table
Programming language Yes Don't know No
C++ / C# 20 240 182
Java / Scala 43 244 155
Javascript / Typescript 52 242 148
Python 258 88 96
R 364 33 45
SAS 244 102 96
SPSS 218 109 115
SQL 307 95 40
Stata 130 182 130
VBA 266 126 50
a Sample size = 442

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# 16 4 21
Java / Scala 33 10 12
Javascript / Typescript 32 20 15
Python 154 104 38
R 103 261 34
SAS 75 169 35
SPSS 89 129 65
SQL 74 233 43
Stata 87 43 31
VBA 143 123 14
a Sample size = 442

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 65 360
Data Cleaning 52 300
Data Transfer / Migration 62 177
Data Visualisation 157 237
Quality Assurance 135 281
a Sample size = 442

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 26
Slightly worse 47
No change 60
Slightly better 132
Significantly better 108
a Sample size = 373

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 74
In education 215
In private sector employment 13
In public sector employment 75
Self-taught 49
Other 4
a Sample size = 431

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 7.7 15.9 11.2 20.3 21.1 23.8
I follow a standard directory structure when programming 29.3 3.7 9.2 20.8 26.6 10.4
I follow coding guidelines or style guides when programming 4.0 6.5 8.4 29.0 37.5 14.6
I use a source code version control system e.g. Git 11.9 43.7 13.4 12.4 8.4 10.2
Code my team writes is reviewed by a colleague 1.7 6.7 13.6 27.8 30.5 19.6
I write repetitive elements in my code as functions 5.0 9.4 8.9 26.1 30.5 20.1
I collect my code and supporting material into packages 10.9 42.2 16.6 14.6 11.2 4.5
I unit test my code 29.3 27.5 12.2 13.2 11.4 6.5
I write code to automatically quality assure data 3.5 24.1 15.1 33.5 18.1 5.7
My team open sources its code 17.4 48.4 14.6 11.2 5.2 3.2
a Sample size = 403

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 17.9 38.7 16.9 12.9 8.4 5.2
Data or assumptions registers 22.3 33.7 14.6 15.6 9.7 4.0
Documentation for each function or class 11.2 25.6 15.6 21.8 16.9 8.9
Code comments 1.0 3.0 3.0 6.7 29.0 57.3
Flow charts 4.0 37.2 23.8 24.1 9.2 1.7
README files 8.2 25.6 13.9 27.8 14.9 9.7
Desk notes 8.4 16.9 10.4 21.3 32.3 10.7
a Sample size = 403

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 7
No 230
Don't know what they are 166
a Sample size = 403

Source control platform

The number of users of each source control platform.

Show chart Show table
Version control platform Yes
GitHub 98
GitLab 79
BitBucket 2
AWS CodeCommit 0
Cloud Source Repository (Google Cloud) 4
a Sample size = 403

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 86
Heard of RAP, have not heard of RAP champions 62
Heard of RAP, does not know department champion 137
Heard of RAP champions, no champion in department 10
Knows department RAP champion 115
a Sample size = 442

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.8 14.9 12.4 48.3 19.7
I feel confident implementing RAP in my work 10.7 26.1 21.1 30.6 11.5
I think it is important to implement RAP in my work 2.0 6.7 17.7 41.6 32.0
I feel supported to implement RAP in my work 7.6 16.6 32.6 29.5 13.8
I know where to find resources to help me implement RAP 8.1 26.4 18.3 33.4 13.8
I and/or my team are currently implementing RAP 13.2 27.8 18.8 25.0 15.2
a Sample size = 356

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 95
Peer review Basic 202
Team open source code Basic 34
Use open source software Basic 181
Version control Basic 75
Code packages Advanced 63
Continuous integration Advanced 46
Dependency management Advanced 69
Follow code style guidelines Advanced 210
Function documentation Advanced 104
Functions Advanced 204
Unit testing Advanced 72
a Sample size = 403

Basic RAP scores

Show chart Show table
Basic RAP score Count
0 142
1 140
2 75
3 51
4 26
5 8
a Sample size = 403

Advanced RAP scores

Show chart Show table
Advanced RAP score Count
0 99
1 104
2 70
3 56
4 36
5 24
6 6
7 8
a Sample size = 403