Reproducible Analytical Pipelines (RAPs) are automated statistical and analytical processes. They ensure that analysis is reproducible, efficient, and high quality.
The Analysis Standards and Pipelines team have worked with teams across government to help them implement RAP. From our experiences we have developed an approach that works to build capability in the team, deliver a working and valuable product, and create enthusiasm for a new way of doing analysis.
What we do
We approach building RAP capability in teams by:
- starting small and growing,
- developing early examples to demonstrate value quickly,
- making sure the teams have the right knowledge by delivering just-in-time learning,
- working with the teams through paired development and mentoring,
- understanding end user needs and working to fulfil them,
- using good practices, like version control, built-in testing and good documentation, from the beginning.
Managers are happier when they see quick wins. We work with analysts to identify small parts of the existing pipeline which have time-consuming manual steps or are the riskiest and prioritise these for development. We keep managers enthused by sharing successes.
"Just-in-time learning", where new techniques or principles are taught to analysts just before they use them, helps analysts to learn best practices. This allows them to embed their new knowledge by using it, rather than taking an “Intro to R” course months before they ever get to use it.
Paired programming, where two or more analysts code together with one “driving” and the other reviewing, spreads knowledge, aids peer review, and speeds up code development.
Agile is an approach to managing software development that helps teams deliver products to their customers faster. A big part of Agile working is understanding user needs. Gathering and understanding user needs allows analysts to create code which is fit for purpose. Frequent conversations with users, and showing them working versions of the product, help us understand if needs have changed so we can adjust our code appropriately. Opening these lines of communication between analysts and users is vital to allow for RAP to work effectively.
What we need
For this approach to work we need the right team, the right tools and support from managers. Each member of the team should have a base level of coding ability but does not need to be an expert. In previous projects we have started with training a small team first. Once this team is ready, we bring in more contributors.
A range of skills in the team is useful to help a RAP project flow smoothly. Team members who know the outputs and end users are useful to keep the product fit for purpose. The team must be enthusiastic as it is challenging to learn this new way of working.
Analysts need time commitment to learn RAP practices and to produce the code the right way. Managers must be made aware of how much time this takes, and they must commit to giving their teams this time.
How to take part
Contact us for support deploying RAP in your team.
We recently released our cross-governmental RAP strategy. You can also read the Quality Assurance of Code for Analysis and Research for a detailed look at RAP principles. My colleague Rowan has recently written a blog about building open source tools for analysts to help them implement RAP.