Slide 1

Slide 1 text

1 S U S TA I N E R S O F T H E tidyverse Mara Averick (@dataandme) Tidyverse Developer Advocate, RStudio

Slide 2

Slide 2 text

Mara Averick TIDYVERSE DEV ADVOCATE, RSTUDIO Not a Real Data Scientist™

Slide 3

Slide 3 text

Mara Averick TIDYVERSE DEV ADVOCATE, RSTUDIO

Slide 4

Slide 4 text

SCIENCE & SOCIETY

Slide 5

Slide 5 text

Studying scientists… In Beamtimes and Lifetimes: The World of High Energy Physics. (1988). Cambridge, MA: Harvard University Press. “Like many social groups that do not reproduce themselves biologically, the experimental particle physics community renews itself by training novices.” — Sharon Traweek, Pilgrim's Progress: Male Tales Told During a Life in Physics, 1988

Slide 6

Slide 6 text

OPEN SOURCE TOOLS Create demand OPEN SOURCE TOOLS Create demand Enterprise Products Invest in

Slide 7

Slide 7 text

Strategy 58% of company is Engineering 60% of engineering is open source 


Slide 8

Slide 8 text

25 years of R • 1992 Robert Gentleman and Ross Ihaka (S) • Statistical programming language • Maintained by R Core • 2000 R version 1.0.0 • Over 16,000 packages on CRAN Thieme, N. (2018). R generation. Significance, 15(4), 14–19. http://doi.org/10.1111/j. 1740-9713.2018.01169.x

Slide 9

Slide 9 text

The tidyverse is an opinionated collection of R packages designed for data science. All packages share an underlying design philosophy, grammar, and data structures. What is the tidyverse? source: https://www.tidyverse.org/ data structures R packages data science. design philosophy grammar opinionated

Slide 10

Slide 10 text

Tidy Import Visualise Transform Model Communicate Program tibble tidyr purrr magrittr dplyr forcats hms ggplot2 broom modelr readr readxl haven xml2 shiny rmarkdown lubridate stringr Source: Hadley Wickham recipes rsample tidyposterior yardstick

Slide 11

Slide 11 text

Tidy Import Visualise Transform Model Communicate Program tibble tidyr purrr magrittr dplyr forcats hms ggplot2 broom modelr readr readxl haven xml2 shiny rmarkdown lubridate stringr Source: Hadley Wickham recipes rsample tidyposterior yardstick

Slide 12

Slide 12 text

Tidy Surprises, but doesn't scale Create new variables & new summaries Visualise Transform Model Communicate Scales, but doesn't (fundamentally) surprise Automate Store data consistently Import Understand src: Hadley Wickham

Slide 13

Slide 13 text

TIDY TOOLS Source: Wickham, Hadley. 2017-11-13. “The tidy tools manifesto.” https://cran.r-project.org/web/packages/tidyverse/vignettes/manifesto.html SIMPLE Do one thing and do it well. COMPOSABLE Combine with other functions for multi-step operations. Functions should be... DESIGNED FOR HUMANS Use evocative verb names, making them easy to remember.

Slide 14

Slide 14 text

CC by RStudio R - A computer language for scientists Human thought Machine language C++ via Garrett Grolemund A computer language for scientists

Slide 15

Slide 15 text

Practitioner Programmer Implicit Explicit Interactive Easily detect & resolve problems Packaged In production Code is a conversation Ambiguity can be tolerated Code is a script
 Fail early and often source: Hadley Wickham

Slide 16

Slide 16 text

What does this mean for contribution and sustainability?

Slide 17

Slide 17 text

• maintainers • sustainers Key FOSS actors • contributors • consumers/users Report team: Ben Nickolis, Pia Mancini, Justin Dorfman, Robert Gibb

Slide 18

Slide 18 text

• maintainers • sustainers Key FOSS actors • contributors • consumers/users Report team: Ben Nickolis, Pia Mancini, Justin Dorfman, Robert Gibb “When we talk about sustainability, we are talking both and equally about the sustainability of resources and the sustainability of its people.”

Slide 19

Slide 19 text

✓ Create sustainable communities ✓ Free the maintainer ✓ Raise the value of non-code contributions Sustain: key recommendations Report team: Ben Nickolis, Pia Mancini, Justin Dorfman, Robert Gibb 2017

Slide 20

Slide 20 text

• virtual spaces • technical tools • social norms Sustaining the tidyverse...

Slide 21

Slide 21 text

• virtual spaces • technical tools • social norms Sustaining the tidyverse... spoiler alert: they're interrelated

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

The tidyverse would not be possible without the contributions of the R community. No matter your current skills, it’s possible to contribute back to the tidyverse.

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Where do people go to contribute?

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

and a bunch of other places…

Slide 32

Slide 32 text

RLadies R4DS Online Learning Community rOpenSci

Slide 33

Slide 33 text

Considerations • Visibility * Ford, D., Smith, J., Guo, P. J., & Parnin, C. (2016). Paradise unplugged: identifying barriers for female participation on stack overflow. 24th ACM SIGSOFT - FSE 2016, 846–857. http://doi.org/10.1145/2950290.2950331

Slide 34

Slide 34 text

Considerations • Visibility • Permanence * Ford, D., Smith, J., Guo, P. J., & Parnin, C. (2016). Paradise unplugged: identifying barriers for female participation on stack overflow. 24th ACM SIGSOFT - FSE 2016, 846–857. http://doi.org/10.1145/2950290.2950331

Slide 35

Slide 35 text

Considerations • Visibility • Permanence • Authority * Ford, D., Smith, J., Guo, P. J., & Parnin, C. (2016). Paradise unplugged: identifying barriers for female participation on stack overflow. 24th ACM SIGSOFT - FSE 2016, 846–857. http://doi.org/10.1145/2950290.2950331

Slide 36

Slide 36 text

Considerations • Visibility • Permanence • Authority • Speed * Ford, D., Smith, J., Guo, P. J., & Parnin, C. (2016). Paradise unplugged: identifying barriers for female participation on stack overflow. 24th ACM SIGSOFT - FSE 2016, 846–857. http://doi.org/10.1145/2950290.2950331

Slide 37

Slide 37 text

Considerations • Visibility • Permanence • Authority • Speed • Peer parity * Ford, D., Smith, J., Guo, P. J., & Parnin, C. (2016). Paradise unplugged: identifying barriers for female participation on stack overflow. 24th ACM SIGSOFT - FSE 2016, 846–857. http://doi.org/10.1145/2950290.2950331 (Ford et al. 2016)

Slide 38

Slide 38 text

Considerations • Visibility • Permanence • Authority • Speed • Peer parity* • Prior social links * Casalnuovo, C., Vasilescu, B., Devanbu, P., & Filkov, V. (2015). Developer onboarding in GitHub: the role of prior social links and language experience. Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering - ESEC/FSE 2015, 817–828. http://doi.org/10.1145/2786805.2786854 (Casalnuovo et al. 2015)

Slide 39

Slide 39 text

"We don't do that here" Ford, Denae, Kristina Lustig, Jeremy Banks, Chris Parnin, and North Carolina. 2018. “‘We Don’t Do That Here’: How Collaborative Editing with Mentors Improves Engagement in Social Q & A Communities.” In CHI 2018. Montreal, QC, Canada: ACM. doi:10.1145/3173574.3174182. • Question phrasing • Formatting posts • Community triage • Question framing • Community culture of asking

Slide 40

Slide 40 text

"We don't do that here" Ford, Denae, Kristina Lustig, Jeremy Banks, Chris Parnin, and North Carolina. 2018. “‘We Don’t Do That Here’: How Collaborative Editing with Mentors Improves Engagement in Social Q & A Communities.” In CHI 2018. Montreal, QC, Canada: ACM. doi:10.1145/3173574.3174182. • Question phrasing • Formatting posts • Community triage • Question framing • Community culture of asking format code as code

Slide 41

Slide 41 text

"We don't do that here" Ford, Denae, Kristina Lustig, Jeremy Banks, Chris Parnin, and North Carolina. 2018. “‘We Don’t Do That Here’: How Collaborative Editing with Mentors Improves Engagement in Social Q & A Communities.” In CHI 2018. Montreal, QC, Canada: ACM. doi:10.1145/3173574.3174182. • Question phrasing • Formatting posts • Community triage • Question framing • Community culture of asking is this an appropriate place for your Q?

Slide 42

Slide 42 text

"We don't do that here" Ford, Denae, Kristina Lustig, Jeremy Banks, Chris Parnin, and North Carolina. 2018. “‘We Don’t Do That Here’: How Collaborative Editing with Mentors Improves Engagement in Social Q & A Communities.” In CHI 2018. Montreal, QC, Canada: ACM. doi:10.1145/3173574.3174182. • Question phrasing • Formatting posts • Community triage • Question framing • Community culture of asking clarity, research of problem, context

Slide 43

Slide 43 text

"We don't do that here" Ford, Denae, Kristina Lustig, Jeremy Banks, Chris Parnin, and North Carolina. 2018. “‘We Don’t Do That Here’: How Collaborative Editing with Mentors Improves Engagement in Social Q & A Communities.” In CHI 2018. Montreal, QC, Canada: ACM. doi:10.1145/3173574.3174182. • Question phrasing • Formatting posts • Community triage • Question framing • Community culture of asking You also might want to edit out the “Thank you!” at the end. I know it seems polite, but people object to it on Stack Overflow.

Slide 44

Slide 44 text

How should you respond to RTFM questions? goal = good QA pair

Slide 45

Slide 45 text

10 simple rules for getting help from online scientific communities 1. Do not be afraid to ask a question 2. State the question clearly 3. New to a mailing list? Learn the established customs before posting 4. Do not ask what has already been answered 5. Always use a good title 6. Do your homework before posting 7. Proofread your post and write in correct English 8. Be courteous to other forum members 9. Remember that the archive of your discussion can be useful to other people 10. Give back to the community Dall’Olio, Giovanni M., Jacopo Marino, Michael Schubert, Kevin L. Keys, Melanie I. Stefan, Colin S. Gillespie, Pierre Poulain, et al. 2011. “Ten Simple Rules for Getting Help from Online Scientific Communities.” PLoS Computational Biology 7 (9): 10–12. doi:10.1371/journal.pcbi.1002202.

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

https://www.discourse.org/

Slide 48

Slide 48 text

https://community.rstudio.com

Slide 49

Slide 49 text

The art of the question The most useless problem statement that one can face is “it doesn’t work”, yet we seem to get it far too often. – Thiago Maciera Maciera, Thiago. 2012. “The Art of Problem Solving.” In Open Advice: FOSS: What We Wish We Had Known When We Started, edited by Lydia Pintscher, 55–61.

Slide 50

Slide 50 text

PROBLEM DESCRIPTION MINIMAL REPRODUCIBLE EXAMPLE EXPECTED BEHAVIOUR the anatomy of an issue ! " #

Slide 51

Slide 51 text

PROBLEM DESCRIPTION MINIMAL REPRODUCIBLE EXAMPLE EXPECTED BEHAVIOUR the anatomy of an issue ! " # "Creating an issue template for your repository" – GitHub Help < https://help.github.com/articles/creating-an-issue-template-for-your-repository/>

Slide 52

Slide 52 text

They're not wrong

Slide 53

Slide 53 text

“It is impossible to speak in such a way that you cannot be misunderstood.” — Karl Popper

Slide 54

Slide 54 text

Writing prose about code…

Slide 55

Slide 55 text

Writing prose about code…

Slide 56

Slide 56 text

Writing prose about code…

Slide 57

Slide 57 text

the magic of reprex reproducible example

Slide 58

Slide 58 text

reprex raison d’être

Slide 59

Slide 59 text

Keys to reprex-cellence ✓ Code that actually runs ✓ Code that doesn't have to be run ✓ Code that can be easily run Source: Jenny Bryan, 2017. "reprex: the package, the point." https://speakerdeck.com/jennybc/reprex-help-me-help-you

Slide 60

Slide 60 text

Source: Nick Tierney. "Magic reprex." 2017-01-11

Slide 61

Slide 61 text

https://maraaverick.rbind.io/2018/06/reprexcellence/

Slide 62

Slide 62 text

HOW YOU CAN DO THE THING WHY I'M ASKING YOU TO DO IT WHAT I'M ASKING YOU TO DO Make a reproducible example Resources, videos, we've got it all… Help me help you — I need your data to do so The reprex request trifecta $ ? &

Slide 63

Slide 63 text

RTFM The R Core Team “Writing R Extensions.” R, version 3.5.1 (2018-07-02). https://cran.r-project.org/doc/manuals/r-release/R-exts.html Copyright © 1999–2018 R Core Team

Slide 64

Slide 64 text

RTFM TFM The R Core Team “Writing R Extensions.” R, version 3.5.1 (2018-07-02). https://cran.r-project.org/doc/manuals/r-release/R-exts.html Copyright © 1999–2018 R Core Team

Slide 65

Slide 65 text

Guide them through the docs

Slide 66

Slide 66 text

No content

Slide 67

Slide 67 text

No content

Slide 68

Slide 68 text

No content

Slide 69

Slide 69 text

photo cred: Sail Fish Scuba https://sailfishscuba.com/manowar/ Contributing to FOSS WHAT HOLDS PEOPLE BACK? Pintscher, Lydia, Ed. 2012. Open Advice: Foss: What We Wish We Had Known When We Started.

Slide 70

Slide 70 text

photo cred: Sail Fish Scuba https://sailfishscuba.com/manowar/ Contributing to FOSS • “I can't write code.” WHAT HOLDS PEOPLE BACK? Pintscher, Lydia, Ed. 2012. Open Advice: Foss: What We Wish We Had Known When We Started.

Slide 71

Slide 71 text

photo cred: Sail Fish Scuba https://sailfishscuba.com/manowar/ Contributing to FOSS • “I can't write code.” • “I'm not really good at this.” WHAT HOLDS PEOPLE BACK? Pintscher, Lydia, Ed. 2012. Open Advice: Foss: What We Wish We Had Known When We Started.

Slide 72

Slide 72 text

photo cred: Sail Fish Scuba https://sailfishscuba.com/manowar/ Contributing to FOSS • “I can't write code.” • “I'm not really good at this.” • “I'd just be a burden.” WHAT HOLDS PEOPLE BACK? Pintscher, Lydia, Ed. 2012. Open Advice: Foss: What We Wish We Had Known When We Started.

Slide 73

Slide 73 text

photo cred: Sail Fish Scuba https://sailfishscuba.com/manowar/ Contributing to FOSS • “I can't write code.” • “I'm not really good at this.” • “I'd just be a burden.” • “They already have enough people smarter than me.” WHAT HOLDS PEOPLE BACK? Pintscher, Lydia, Ed. 2012. Open Advice: Foss: What We Wish We Had Known When We Started.

Slide 74

Slide 74 text

The newcomer's paradox... When you ask for help, some friendly soul will no doubt tell you that “it’s easy, just do foo, bar and baz.” Except for you, it is not easy, there may be no documentation for foo, bar is not doing what it is supposed to be doing and what is this baz thing anyway with its eight disambiguation entries on Wikipedia? — Leslie Hawthorne “You’ll Eventually Know Everything They’ve Forgotten.” In Open Advice: FOSS: What We Wish We Had Known When We Started, edited by Lydia Pintscher, 29–32. foo bar baz

Slide 75

Slide 75 text

The comprehension comfort curve "Abstraction and Comprehension." Greg Wilson. 2018-11-03.

Slide 76

Slide 76 text

Abstraction & comprehension "Abstraction and Comprehension." Greg Wilson. 2018-11-03.

Slide 77

Slide 77 text

require(n00bs) "How rOpenSci uses Code Review to Promote reproducible Science." Noam Ross, Scott Chamberlain, Karthik Ram, Maëlle Salmon. 2017-09-01.

Slide 78

Slide 78 text

require(n00bs) "How rOpenSci uses Code Review to Promote reproducible Science." Noam Ross, Scott Chamberlain, Karthik Ram, Maëlle Salmon. 2017-09-01.

Slide 79

Slide 79 text

Send me a pull request You have a typo in your documentation Can you fix it? Go to GitHub No Yes Adapted from: You Do Not Need to Tell Me I Have A Typo in My Documentation by Yihui Xie tpyos

Slide 80

Slide 80 text

Send me a pull request You have a typo in your documentation Can you fix it? Go to GitHub No Yes Adapted from: You Do Not Need to Tell Me I Have A Typo in My Documentation by Yihui Xie typos

Slide 81

Slide 81 text

My first “contribution”

Slide 82

Slide 82 text

My first “contribution”

Slide 83

Slide 83 text

COMMENTS ISSUES PULL REQUESTS Contributing code/making fixes. Help maintainers answer questions, triage issues. Help newcomers learn how to ask better questions (e.g. the art of the reprex). Identifying a problem, trying your best to isolate its source. Ways to contribute ' ( )

Slide 84

Slide 84 text

need help getting started?

Slide 85

Slide 85 text

and a bunch of other places…

Slide 86

Slide 86 text

giving back

Slide 87

Slide 87 text

tidyverse team

Slide 88

Slide 88 text

Works cited • Traweek, Sharon. 1988. Beamtimes and Lifetimes: The World of High Energy Physics. Cambridge, MA: Harvard University Press. • NIST image: This work is in the public domain in the United States under the terms of Title 17, Chapter 1, Section 105 of the US Code. • Pintscher, Lydia, ed. 2012. Open Advice: FOSS: What We Wish We Had Known When We Started. • “You’ll Eventually Know Everything They’ve Forgotten.” In Open Advice: FOSS: What We Wish We Had Known When We Started, 29–32. • Shaikh, Reshama. 2018. "Why Women Are Flourishing In R Community But Lagging In Python." https://reshamas.github.io/why-women-are-flourishing-in-r-community- but-lagging-in-python/ • "Recommendations to increase the Participation of Women at useR! conferences" R Forwards Taskforce. https://forwards.github.io/docs/recommendations_user/ • Steinmacher, I., Treude, C., & Gerosa, M. A. (2018). Let me in: Guidelines for the Successful Onboarding of Newcomers to Open Source Projects. IEEE Software, PP(99), 1. http://doi.org/10.1109/MS.2018.110162131 • Steinmacher, I., Gerosa, M., Conte, T. U., & Redmiles, D. F. (2018). Overcoming Social Barriers When Contributing to Open Source Software Projects. Computer Supported Cooperative Work: CSCW: An International Journal, 1–44. http://doi.org/10.1007/s10606-018-9335-z • Ford, D., Smith, J., Guo, P. J., & Parnin, C. (2016). Paradise unplugged: identifying barriers for female participation on stack overflow. Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering - FSE 2016, 846–857. http://doi.org/10.1145/2950290.2950331 • Ford, D., & Parnin, C. (2015). Exploring Causes of Frustration for Software Developers. In 2015 IEEE/ACM 8th International Workshop on Cooperative and Human Aspects of Software Engineering (pp. 115–116). IEEE. http://doi.org/10.1109/CHASE.2015.19 • Casalnuovo, C., Vasilescu, B., Devanbu, P., & Filkov, V. (2015). Developer onboarding in GitHub: the role of prior social links and language experience. Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering - ESEC/FSE 2015, 817–828. http://doi.org/10.1145/2786805.2786854

Slide 89

Slide 89 text

Thank You