Skip to content

Commit

Permalink
Merge pull request #44 from NHSDigital/release/v1.4.0
Browse files Browse the repository at this point in the history
Release v1.4.0
  • Loading branch information
josephwilson8-nhs authored Jul 28, 2023
2 parents b557e36 + edec1e2 commit 72c97cf
Show file tree
Hide file tree
Showing 117 changed files with 2,462 additions and 719 deletions.
23 changes: 0 additions & 23 deletions docs/README.md

This file was deleted.

2 changes: 1 addition & 1 deletion docs/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ This collection of resources is [© Crown copyright](http://www.nationalarchives
[2]: ./implementing_RAP/how-to-publish-your-code-in-the-open.md
[3]: ./training_resources/python/basic-python-data-analysis-operations.md
[4]: ./training_resources/R/README.md
[8]: ./training_resources/git/intro-to-git.md
[8]: ./training_resources/git/introduction-to-git.md
[11]: ./introduction_to_RAP/why_RAP_is_important.md#aims-of-rap
[12]: ./introduction_to_RAP/levels_of_RAP.md
[13]: ./our_RAP_service#support
Expand Down
4 changes: 2 additions & 2 deletions docs/acknowledgements.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ The **NHS Digital Data Science Skilled Team** has been the core of this work, bu

| [Helen Richardson](https://github.com/helrich) | [Jonny Laidler](https://github.com/JonathanLaidler) | [Harriet Sands](https://github.com/harrietrs) | [Maakhe Ndhlela](https://github.com/maakhe) | [Scarlett Kynoch](https://github.com/scarlett-k-nhs)|
| :-------------------------------------------------- | :------------------------------------------------------ | :------------------------------------------------------- | :-------------------------------------------------------- | :-------------------------------------------------------- |
| **[Connor Quinn](https://github.com/connor1q)** | **[Alistair Jones](https://github.com/alistair-jones)** | **[Daniel Goldwater](https://github.com/DanGoldwater1)** | **[Joseph Wilson](https://github.com/josephwilson8-nhs)** | |
| **[Philip Hoang Le](https://github.com/philip-le)** | **[Sam Hollings](https://github.com/SamHollings)** | **[Abbie Prescott](https://github.com/abbieprescott)** | **[Xiyao Zhuang](https://github.com/xiyaozhuang)** | |
| **[Connor Quinn](https://github.com/connor1q)** | **[Alistair Jones](https://github.com/alistair-jones)** | **[Daniel Goldwater](https://github.com/DanGoldwater1)** | **[Joseph Wilson](https://github.com/josephwilson8-nhs)** | **[Humaira Hussein](https://github.com/humairahussein1)** |
| **[Philip Hoang Le](https://github.com/philip-le)** | **[Sam Hollings](https://github.com/SamHollings)** | **[Abbie Prescott](https://github.com/abbieprescott)** | **[Xiyao Zhuang](https://github.com/xiyaozhuang)** | **[Warren Davies](https://github.com/warren-davies4)** |

**You guys really put the "champion" in RAP Champion!!!**
8 changes: 0 additions & 8 deletions docs/example_RAP_CoP_page.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,11 +111,3 @@ You can also have tabs:
## Further Reading

- Provide any useful links people might need to further their learning

??? info "_External Links Disclaimer_"

*NHS Digital makes every effort to ensure that external links are accurate, up to date and relevant, however we cannot take responsibility for pages maintained by external providers.*

*NHS Digital is not affiliated with any of the websites or companies in the links to external websites.*

*If you come across any external links that do not work, we would be grateful if you could report them by raising an issue on our [RAP Community of Practice GitHub].*
2 changes: 1 addition & 1 deletion docs/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Best practice recommends that we create a different virtual environment for each

Git is a version control system which can help with keeping track of changes to code. Git isn't specific to python, and is used almost universally for coding. Git is a program which runs locally on your computer. Where git really comes into it's own, though, is when you use it to help with collaborating on code with others. Github and Gitlab are two websites which help to do this.

You can read more about git on our [introduction to Git](training_resources/git/intro-to-git.md) page.
You can read more about git on our [introduction to Git](training_resources/git/introduction-to-git.md) page.

## IDE

Expand Down
Binary file added docs/images/compare-and-pull-request.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github-qsg-pat-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github-qsg-pat-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github-qsg-pat-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github-qsg-pat-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github-qsg-pat-5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github-qsg-tryitout-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github-qsg-tryitout-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github-qsg-tryitout-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github-qsg-tryitout-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github-qsg-tryitout-5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github-qsg-tryitout-6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github_creating_new_branches_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github_creating_new_branches_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github_creating_new_branches_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github_creating_new_branches_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github_creating_new_branches_5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github_delete_branch_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github_delete_branch_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/github_delete_branch_3.png
Binary file added docs/images/github_merging_branches_1.png
Binary file added docs/images/github_merging_branches_2.png
Binary file added docs/images/github_merging_branches_3.png
Binary file added docs/images/github_merging_branches_4.png
Binary file added docs/images/github_merging_branches_5.png
Binary file added docs/images/github_merging_branches_6.png
Binary file added docs/images/github_merging_branches_7.png
Binary file added docs/images/github_merging_branches_8.png
Binary file added docs/images/github_switching_branches_1.png
Binary file added docs/images/github_switching_branches_2.png
Binary file added docs/images/github_switching_branches_3.png
Binary file added docs/images/gitlab-qsg-pat-1.png
Binary file added docs/images/gitlab-qsg-pat-2.png
Binary file added docs/images/gitlab-qsg-pat-3.png
Binary file added docs/images/gitlab-qsg-pat-4.png
Binary file added docs/images/gitlab-qsg-tryitout-2.png
Binary file added docs/images/gitlab-qsg-tryitout-3.png
Binary file added docs/images/gitlab-qsg-tryitout-4.png
Binary file added docs/images/gitlab_create_branch_1.png
Binary file added docs/images/gitlab_create_branch_2.png
Binary file added docs/images/gitlab_create_branch_3.png
Binary file added docs/images/gitlab_delete_branch_1.png
Binary file added docs/images/gitlab_delete_branch_2.png
Binary file added docs/images/gitlab_delete_branch_3.png
Binary file added docs/images/gitlab_delete_branch_4.png
Binary file added docs/images/gitlab_merge_conflict_1.png
Binary file added docs/images/gitlab_merge_conflict_2.png
Binary file added docs/images/gitlab_merge_conflict_2b.png
Binary file added docs/images/gitlab_merge_conflict_3.png
Binary file added docs/images/gitlab_merge_conflict_3b.png
Binary file added docs/images/gitlab_merge_conflict_4.png
Binary file added docs/images/gitlab_merge_conflict_5.png
Binary file added docs/images/gitlab_switch_branch_1.png
Binary file added docs/images/gitlab_switch_branch_2.png
Binary file added docs/images/pull-request-tabs.png
2 changes: 1 addition & 1 deletion docs/implementing_RAP/notebooks_versus_ide_development.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ We have created a [suggested workflow][5] that is not intended to be seen as the
[1]: ./how-to-publish-your-code-in-the-open.md
[2]: https://best-practice-and-impact.github.io/qa-of-code-guidance/modular_code.html?highlight=notebooks#:~:text=Think%20carefully%20about%20whether%20notebooks%20are%20a%20suitable%20way%20to%20organise%20your%20code%23
[3]: ../training_resources/python/unit-testing.md
[4]: ../training_resources/git/intro-to-git.md
[4]: ../training_resources/git/introduction-to-git.md
[5]: ../implementing_RAP/technical-workflow.md

<br></br>
Expand Down
133 changes: 133 additions & 0 deletions docs/implementing_RAP/process_mapping.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# Processing Mapping

## How to Describe your Processes

!!! tip "TLDR"
- **A picture speaks a thousand words** - it's a great way of describing your process
- Go through your process, identifying each step and map it out
- There are loads of tools you can do this in, such as [Miro][8], Visio, [Draw.io][9], [LucidChart][10], or even PowerPoint
- Some tools, might allow you to work with your colleagues in real-time, making collaboration easier
- [here is a nice guide which explains how the symbols should be used][5]
- Don't just map out what you currently have - start moving those post-its around to improve it!

??? question "Why should we care?"
- Process documents can be dry and difficult to follow - a picture can make a process much clearer
- Mapping out a process can highlight redundant areas, showing you where quick wins can be made when improving it
- It can allow new or less technical team members to get up to speed and feel a part of the RAP process.

??? success "Pre-requisites"
* Some information on what someone might need to be familiar with before they can use this page

|Pre-requisite | Importance | Note |
|--------------|------------|------|
|**None!**||Anyone can do this - it's the first thing you should do when starting some RAP work|

Before we dive in, **here is a fun example of a process map** from [XKCD](https://imgs.xkcd.com/comics/tech_support_cheat_sheet.png):

![an amusing comic showing a flow chart describing how learning to use software mostly involves googling until we find some answers](https://imgs.xkcd.com/comics/tech_support_cheat_sheet.png "an amusing comic showing a flow chart describing how learning to use software mostly involves googling until we find some answers"){ width="450" }

RAP deals with improving processes, but before doing any programming, it really helps to understand what we already have; **a great process map really helps with this!**

Be the envy of your peers, and the talk of the time, by making a visual journey through your process, and you might even come across some quick win improvements on the way!

## How to map a process

There is a nice guide to process mapping [here][1], however in brief:

- Write down your process (or if you've got a process document already, lucky you!)
- Split this into steps.
- it can be helpful not to go too granular initially; keep it high level - we don't need "click this button, then this button, etc."
- instead, write what is intended, not how it is implemented, e.g. step 1: load the data into the database
- Use [flowchart symbols][5] (or some other way if you prefer) to describe what each step is

You can then take this further by analysing the process map and identifying repeated or manual steps - RAP can help with this!

### Example (using Markdown and Mermaid)

Let's imagine we had a simple process: Analysts get given a CSV, which they load into a SQL server, enter today's date, after which they run the SQL script and take the output into Excel. Splitting this into the steps:

- Take two CSVs and load them each into the database manually.
- Manually type in today's date, then run a SQL script that produces some analytical output in a table.
- Manually extract this into an Excel spreadsheet.

We can then transform this into a flow chart:
(this uses [Mermaid][2])

```mermaid
graph LR
A[Manually Load CSV 1]:::manual --> B[(Database)];
C[Manually Load CSV 2]:::manual --> B;
H[/CSV 1/] --> A
I[/CSV 2/] --> C
D[Manually type in today's date]:::manual --> E[[Run SQL Script]]
B --> E
E --> F[Manually extract results into Excel]:::manual
F --> G[/Excel Output/]
classDef manual fill:#FFCCCC
```

## Using a process map to find improvements

Because a flowchart lays out the process clearly, it can make it easier to find things to improve, such as:
- redunant steps or similar tasks being done several times
- manual steps
- pull out complex tasks into "sub tasks" -> which might also need flow charts!
- this can also help you structure your code and decide when to break the code into different files

Following on from our example above:
- we can see a few manual steps - could these be automated?
- There are two tasks which "load CSVs" - could we make one automated process which can be run twice to load both? Or even just one task which loads both?

Considering this, we could imagine an improved process diagram, which might then form the basis of our RAP work:
```mermaid
graph LR
A[Load CSV] --> B[(Database)];
H[/CSV 1/] --> A
I[/CSV 2/] --> A
D[Calculate todays date] --> E[[Run SQL Script]]
K[Get todays date manual/config]:::manual --> E
J{Is todays date provided?} -->|no| D
J -->|yes| K
B --> E
E --> F[Generate Excel output]
F --> G[/Excel Output/]
classDef manual fill:#FFCCCC
```
We can see above that we made a new "load CSV" task and that we changed many manual tasks to sound more automated "Generate" rather than make.
!!! note
[perhaps you could use Python][3] to automate the manual tasks?

We also added a bit of logic, where the process will calculate today's date if it is not given it - so we haven't removed every manual step (someone might still need to "give" the correct date to the process) - but we've managed to [minimise the manual steps][4].

## Common standards

Whatever makes sense to your team is the crucial part - however if you want it to make sense to other people too, there are some common flow chart standards you can follow.

[Unified Modelling Language][6] is an ISO standard which is widely used, and [here is a nice guide which explains how the symbols should be used][5].

## Tools

We won't go into tools so much here, as the right tool for you often depends on what is easiest to use in your organisation.

There are loads of tools for process mapping though, and some options be [Miro][8], Visio, [Draw.io][9], [LucidChart][10], or even PowerPoint.

## Where now?

- You've mapped your process, so perhaps consider using the ["thin slice strategy"][7] to get going with RAPifying it?

[1]: https://www.lucidchart.com/pages/process-mapping/how-to-make-a-process-map
[2]: https://squidfunk.github.io/mkdocs-material/reference/diagrams/
[3]: ../training_resources/python/intro-to-python.md
[4]:https://analysisfunction.civilservice.gov.uk/policy-store/reproducible-analytical-pipelines-strategy/#section-12
[5]: https://www.lucidchart.com/pages/process-mapping/process-map-symbols
[6]:https://en.wikipedia.org/wiki/Unified_Modeling_Language
[7]: ../our_RAP_service/thin-slice-strategy.md
[8]:https://miro.com/
[9]:https://app.diagrams.net/
[10]:https://www.lucidchart.com/pages/
Loading

0 comments on commit 72c97cf

Please sign in to comment.