Department summary: Ministry of Defence (excl. agencies)

How to use this research

Responding to CARS is voluntary. The results presented here are from a self-selecting sample of government analysts. Because respondents are self-selecting, the results we present reflect the views of the analysts who participated.

For more detail, see the data collection page.

Coding frequency and tools

How often analysts are using code at work

We asked respondents “In your current role, how often do you write code to complete your work objectives?”

Show chart Show table
Coding frequency Percent
Never 10.5%
Rarely 23.7%
Sometimes 21.1%
Regularly 21.1%
All the time 23.7%
Sample size = 38

Access to and knowledge of programming languages

Given a list of programming tools, we asked all respondents if the tool was available to use for their work.

Access to tools does not necessarily refer to official policy. Some analysts may have access to tools others cannot access within the same organisation.

Access to coding tools

Show chart Show table
Programming tool Yes No Don't Know
Python 36.8% 42.1% 21.1%
R 81.6% 13.2% 5.3%
SQL 78.9% 15.8% 5.3%
Matlab 5.3% 55.3% 39.5%
SAS 15.8% 44.7% 39.5%
SPSS 26.3% 42.1% 31.6%
Stata 7.9% 52.6% 39.5%
VBA 65.8% 13.2% 21.1%
Sample size = 38

Given the same list of programming tools, all respondents were asked if they knew how to program with the tool to a level suitable for their work, answering “Yes”, “No” or “Not required for my work”.

Please note that capability in programming languages is self-reported here and was not objectively defined or tested. The statement “not required for my work” was similarly not defined.

Knowledge of coding tools

Show chart Show table
Programming tool Yes No Not required for my work
Python 31.6% 36.8% 31.6%
R 52.6% 34.2% 13.2%
SQL 71.1% 15.8% 13.2%
Matlab 13.2% 31.6% 55.3%
SAS 7.9% 34.2% 57.9%
SPSS 10.5% 34.2% 55.3%
Stata 2.6% 39.5% 57.9%
VBA 26.3% 47.4% 26.3%
Sample size = 38

Access to and knowledge of git

We asked respondents to answer “Yes”, “No” or “Don’t know” for the following questions:

  • Is git available to use in your work?
  • Do you know how to use git to version-control your work?

Please note these outputs include people who do not code at work.

Access to git

Show chart Show table
Response Percent
Yes 68.4%
No 18.4%
I don't know 13.2%
Sample size = 38

Knowledge of git

Show chart Show table
Response Percent
Yes 52.6%
No 44.7%
I don't know 2.6%
Sample size = 38

Coding capability and change

Where respondents first learned to code

Respondents with coding experience outside their current role were asked where they first learned to code. Those analysts who code in their current role but reported no other coding experience, are included as having learned ‘In current role’. Those who reported first learning to code outside of a work or educational environment were categorised as ‘self-taught’ based on free-text responses.

These data only show where people first learned to code. They do not show all the settings in which they had learned to code, to what extent, or how long ago.

Show chart Show table
Where learned Percent
Current employment 26.5%
Education 44.1%
Previous private sector employment 0%
Previous public sector employment 20.6%
Self-taught 5.9%
Other 2.9%
Sample size = 34

Change in coding ability during current role

We asked “Has your coding ability changed during your current role?”

This question was only asked of respondents with coding experience outside of their current role. This means analysts who first learned to code in their current role are not included in the data.

Show chart Show table
Ability change Percent
Significantly worse 4%
Slightly worse 12%
Stayed the same 20%
Slightly better 32%
Significantly better 32%
Sample size = 25

Coding practices

We asked respondents who said they currently use code in their work, how often they carry out various coding practices. For more information on the practices presented below, please read our guidance on Quality Assurance of Code for Analysis and Research

Open sourcing was defined as ‘making code freely available to be modified and redistributed’

Consistency of good coding practices

Show chart Show table
Statement I don't understand this question (%) Never (%) Rarely (%) Sometimes (%) Regularly (%) All the time (%)
Automated data quality assurance 2.9% 38.2% 14.7% 17.6% 14.7% 11.8%
Code review 0% 8.8% 26.5% 44.1% 17.6% 2.9%
Coding guidelines / Style guides 8.8% 17.6% 23.5% 23.5% 11.8% 14.7%
Functions 8.8% 14.7% 8.8% 26.5% 26.5% 14.7%
Open source own code 20.6% 55.9% 14.7% 5.9% 2.9% 0%
Packaging code 14.7% 55.9% 14.7% 11.8% 2.9% 0%
Proportionate quality assurance 14.7% 5.9% 8.8% 20.6% 32.4% 17.6%
Quality assurance throughout development 2.9% 14.7% 20.6% 20.6% 23.5% 17.6%
Standard directory structure 32.4% 20.6% 11.8% 14.7% 11.8% 8.8%
Unit testing 17.6% 26.5% 14.7% 23.5% 14.7% 2.9%
Use open source software 2.9% 11.8% 17.6% 14.7% 26.5% 26.5%
Version control 0% 35.3% 20.6% 11.8% 14.7% 17.6%
Sample size = 34

Documentation

We asked respondents who reported writing code at work how frequently they write different forms of documentation when programming in their current role.

Embedded documentation is one of the components which make up a RAP minimum viable product. Documentation is important to help others be clear on how to use the product and what the code is intended to do.

Show chart Show table
Statement I don't understand this question (%) Never (%) Rarely (%) Sometimes (%) Regularly (%) All the time (%)
Analytical Quality Assurance (AQA) logs 5.9% 52.9% 11.8% 14.7% 11.8% 2.9%
Code comments 0% 2.9% 2.9% 23.5% 38.2% 32.4%
Data or assumptions registers 17.6% 52.9% 17.6% 5.9% 2.9% 2.9%
Desk notes 5.9% 23.5% 14.7% 32.4% 17.6% 5.9%
Documentation for each function or class 8.8% 32.4% 26.5% 8.8% 11.8% 11.8%
Flow charts 0% 26.5% 20.6% 41.2% 5.9% 5.9%
README files 5.9% 35.3% 23.5% 14.7% 14.7% 5.9%
Sample size = 34

Dependency Management

We asked respondents who reported writing code at work if they manage dependencies for their projects.

We provided examples of tools that may be used for dependency management:

  • Requirements files, e.g. python requirements.txt or R DESCRIPTION files
  • Virtual environments (e.g. venv or renv) or virtual machines
  • Containers e.g. Docker
Show chart Show table
Use dependency management software Percent
Yes 20.6%
No 41.2%
I don't know what dependency management is 38.2%
Sample size = 34

Continuous integration

We asked respondents who reported writing code at work if they use continuous integration.

We provided some examples of continuous integration technologies:

  • GitHub actions
  • Jenkins
  • Travis
Show chart Show table
Use continuous integration Percent
Yes 17.6%
No 32.4%
I don't know what continuous integration is 50%
Sample size = 34

Reproducible workflow packages

We asked respondents who reported writing code at work whether they use reproducible workflow packages.

We provided some examples of packages:

  • drake
  • make
  • pymake
  • targets
Show chart Show table
Use reproducible workflow packages Percent
Yes 0%
No 52.9%
I don't know what reproducible workflows are 47.1%
Sample size = 34

Reproducible analytical pipelines (RAP)

We asked respondents about their knowledge of and opinions on reproducible analytical pipelines (RAP). RAP refers to the use of practices from software engineering to make analysis more reproducible. These practices build on the advantages of writing analysis as code by ensuring increased quality, trust, efficiency, business continuity and knowledge management.

The RAP champions are a network of analysts across government who promote and support RAP development in their departments. Please contact the analysis standards and pipelines team for any enquiries about RAP or the champions network.

The Analysis Function RAP strategy was released in June 2022 and sets out plans for adopting RAP across government.

Knowledge of RAP

We asked respondents who reported writing code at work, if they had heard of RAP.

Show chart Show table
Knowledge Percent
Yes 64.7%
No 35.3%
Sample size = 34

RAP Champions

We asked respondents who had heard of RAP, if their department has a RAP champion and if they know who it is.

Show chart Show table
Knowledge Percent
Yes, and I am a RAP Champion 4.5%
Yes, and I know who the RAP Champion is 13.6%
Yes, but I don't know who the RAP Champion is 22.7%
No 9.1%
I don't know 50%
Sample size = 22

Awareness of RAP strategy

We asked respondents who had heard of RAP, if they had heard of the RAP strategy.

Show chart Show table
RAP strategy knowledge Percent
Yes 13.6%
Yes, but I haven't read it 50%
No 36.4%
Sample size = 22

Opinions on RAP

We asked respondents who had heard of RAP whether they agreed with a series of statements.

Show chart Show table
Statement Strongly Disagree (%) Disagree (%) Neutral (%) Agree (%) Strongly Agree (%)
I and/or my team are currently implementing RAP 22.7% 22.7% 22.7% 18.2% 13.6%
I feel confident implementing RAP in my work 4.5% 31.8% 27.3% 31.8% 4.5%
I feel supported to implement RAP in my work 4.5% 22.7% 36.4% 27.3% 9.1%
I know where to find resources to help me implement RAP 9.1% 22.7% 36.4% 22.7% 9.1%
I or my team are planning on implementing RAP in the next 12 months 9.1% 13.6% 27.3% 27.3% 22.7%
I think it is important to implement RAP in my work 0% 18.2% 13.6% 36.4% 31.8%
I understand what the key components of the RAP methodology are 4.5% 27.3% 36.4% 22.7% 9.1%
Sample size = 22

RAP scores

In this section we present RAP components and RAP scores.

For each RAP component a percent positive was calculated. Positive responses were recorded where an answer of “regularly” or “all the time” was given. For documentation, a positive response was recorded if both code comments and README files questions received positive responses. For the continuous integration and dependency management components, responses of “yes” were recorded as positive.

“Basic” components are the components which make up the RAP MVP. “Advanced” components are components which help improve reproducibility, but are not considered part of the minimum standard.

RAP components

Show chart Show table
RAP component Type Percentage of analysts who code in their work
Use open source software Basic 52.9%
Proportionate QA Basic 50%
Version control Basic 32.4%
Peer review Basic 20.6%
Documentation Basic 20.6%
Team open source code Basic 2.9%
Functions Advanced 41.2%
Follow code style guidelines Advanced 26.5%
Function documentation Advanced 23.5%
Dependency management Advanced 20.6%
Unit testing Advanced 17.6%
Continuous integration Advanced 17.6%
Code packages Advanced 2.9%
Sample size = 34