Slide 1

Slide 1 text

Sustainers of the Tidyverse Mara Averick tidyverse developer advocate RStudio @dataandme #H2OWORLD http://bit.ly/h2oworldsf Sustainers of the Tidyverse Mara Averick tidyverse developer advocate RStudio @dataandme

Slide 2

Slide 2 text

Mara Averick TIDYVERSE DEV ADVOCATE, RSTUDIO

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 for Enterprise Products Invest back into

Slide 7

Slide 7 text

Strategy 58% of company is Engineering 58% 
 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 12,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 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 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 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 13

Slide 13 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 src: Hadley Wickham

Slide 14

Slide 14 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 15

Slide 15 text

"Using R, the Tidyverse, H2O, and Shiny to reduce employee attrition"

Slide 16

Slide 16 text

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

Slide 17

Slide 17 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 18

Slide 18 text

What does this mean for contribution and sustainability?

Slide 19

Slide 19 text

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

Slide 20

Slide 20 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 21

Slide 21 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 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 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 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Where do people go to contribute?

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 • 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 34

Slide 34 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 35

Slide 35 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 36

Slide 36 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 37

Slide 37 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 38

Slide 38 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 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 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 40

Slide 40 text

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

Slide 41

Slide 41 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 42

Slide 42 text

No content

Slide 43

Slide 43 text

https://www.discourse.org/

Slide 44

Slide 44 text

https://community.rstudio.com

Slide 45

Slide 45 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 46

Slide 46 text

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

Slide 47

Slide 47 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 48

Slide 48 text

No content

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

They're not wrong

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

Writing prose about code…

Slide 53

Slide 53 text

Writing prose about code…

Slide 54

Slide 54 text

Writing prose about code…

Slide 55

Slide 55 text

the magic of reprex reproducible example

Slide 56

Slide 56 text

reprex raison d’être

Slide 57

Slide 57 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 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 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 61

Slide 61 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 62

Slide 62 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 63

Slide 63 text

Guide them through the docs

Slide 64

Slide 64 text

No content

Slide 65

Slide 65 text

No content

Slide 66

Slide 66 text

No content

Slide 67

Slide 67 text

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 68

Slide 68 text

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 69

Slide 69 text

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 70

Slide 70 text

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 71

Slide 71 text

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 72

Slide 72 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.

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

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

Slide 75

Slide 75 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 76

Slide 76 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 77

Slide 77 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 78

Slide 78 text

My first “contribution”

Slide 79

Slide 79 text

My first “contribution”

Slide 80

Slide 80 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 81

Slide 81 text

need help getting started?

Slide 82

Slide 82 text

and a bunch of other places…

Slide 83

Slide 83 text

giving back

Slide 84

Slide 84 text

tidyverse team

Slide 85

Slide 85 text

Thank You bit.ly/h2oworldsf

Slide 86

Slide 86 text

Works cited • Traweek, Sharon. 1988. Beamtimes and Lifetimes: The World of High Energy Physics. Cambridge, MA: Harvard University Press. • Thieme, N. (2018). R generation. Significance, 15(4), 14–19. http://doi.org/10.1111/j.1740-9713.2018.01169.x • Pintscher, Lydia, ed. 2012. Open Advice: FOSS: What We Wish We Had Known When We Started. http://open-advice.org/ • Hawthorn, L. (2012). You’ll Eventually Know Everything They’ve Forgotten. In L. Pintscher (Ed.), Open Advice: FOSS: What We Wish We Had Known When We Started (pp. 29–32). • Macieira, T. (2012). The Art of Problem Solving. In L. Pintscher (Ed.), Open Advice: FOSS: What We Wish We Had Known When We Started (pp. 55–61). • 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 • 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 • 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 • "Recommendations to increase the Participation of Women at useR! conferences" R Forwards Taskforce. https://forwards.github.io/docs/recommendations_user/ • Wachter-Boettcher, Sara. (2018). Technically Wrong: Sexist Apps, Biased Algorithms, and Other Threats of Toxic Tech. New York: W. W. Norton & Company. • Dancho, Matt. "Using R, the Tidyverse, H2O, and Shiny to reduce employee attrition." Talk at rstudio::conf(2019) https://resources.rstudio.com/rstudio-conf-2019/using-r-the-tidyverse- h2o-and-shiny-to-reduce-employee-attrition