Collaborative working
Mar 23, 2023
Introduction
- This is definitely an art and not a science
- I do not claim to have all, or even most of, the answers
- How you use these tools is way more important than the tools themselves
- This is a culture and not a technique
Costs
- Delay and time
- Stress and disagreement
- Committee thinking
- Learning and effort
Benefits
- “From each according to their ability”
- Learning
- Reproducibility and reduced truck factor
- Fun!
GitHub as an organising principle behind work
- A project is just a set of milestones
- A milestone is just a set of issues
- An issue is just a set of commits
- A commit is just text added and removed
The repo owner
- Review milestones
- Review issues
- Discuss the issue on the issue- NOT on email!
- Review pull requests and get your pull requests reviewed!
Asynchronous communication
- Involve others before you pull request
- Involve others when you pull request
- Read issues!
- Comment on issues!
- File issues- suggestions/ bug reports/ questions
Asynchronous work
- Every piece of work has an issues associated with it
- Every piece of work associated with an issue lives on its own branch
- Every branch is incorporated to the main repo by a pull request
- Every pull request is reviewed
Iteration and documentation
- Analyse early, analyse often (using RAPs!)
- Write down what you did
- Write down what you did but then changed your mind about
- Favour Quarto/ RMarkdown
- Clean sessions
- Documentation and graphics
Data and .gitignore
- Your repo needs to be reproducible but also needs to be safe
- The main branch should be reproducible by anyone at any time
- Document package dependencies (using renv)
- Document data loads if the data isn’t in the repo