SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Downloaden Sie, um offline zu lesen
Opinionated Analysis Development
Hilary Parker

@hspter
Not So Standard Deviations
Reproducible
Accurate
Collaborative
Software developer
Software engineer
Development
Narrative
• What models are you going to use?
• What argument are you going to make?
• How are you going to convince your audience of something?
Technical Artifact
• What tools are you going to use to make the deliverable?
• What technical and coding choices will you make for producing the
deliverable?
disclaimer: Karl is extremely nice, helpful & non-judgmental
Bad analyst? :(
ment
Why?
• Creating an analysis is a hard, error-ridden process that we yada-yada away
right now
Why?
• Creating an analysis is a hard, error-ridden process that we yada-yada away
right now
• don’t want to “limit creativity”
• embarrassed by personal process
Why?
• Creating an analysis is a hard, error-ridden process that we yada-yada away
right now
• don’t want to “limit creativity”
• embarrassed by personal process
Why?
• There are known, common problems when creating an analysis (as well as
solutions to these problems)
• Making these easy to avoid frees up time for creativity
You re-run the analysis and get different results.
Someone else can’t repeat the analysis.
You can’t re-run the analysis on different data.
An external library you’re using is updated, and you can’t recreate the results.
You change code but don’t re-run downstream code, so the results aren’t consistently updated.
You change code but don’t re-execute it, so the results are out of date.
You update your analysis and can’t compare it to previous results.
You can’t point to code changes that resulted in a different analysis results.
A second analyst can’t understand your code.
Can you re-use logic in different parts of the analysis?
You change the logic used in analysis, but only in some places where it’s implemented.
Your code is not performing as expected, but you don’t notice.
Your data becomes corrupted, but you don’t notice.
You use a new dataset that renders your statistical methods invalid, but you don’t notice.
You make a mistake in your code.
You use inefficient code.
A second analyst wants to contribute code to the analysis, but can’t do so.
Two analysts want to combine code but cannot.
You aren’t able to track and communicate known next steps in your analysis.
Your collaborators can only make requests in email or meetings, and they aren’t incorporated into the project.
You re-run the analysis and get different results.
Someone else can’t repeat the analysis.
You can’t re-run the analysis on different data.
An external library you’re using is updated, and you can’t recreate the results.
You change code but don’t re-run downstream code, so the results aren’t consistently updated.
You change code but don’t re-execute it, so the results are out of date.
You update your analysis and can’t compare it to previous results.
You can’t point to code changes that resulted in a different analysis results.
A second analyst can’t understand your code.
Can you re-use logic in different parts of the analysis?
You change the logic used in analysis, but only in some places where it’s implemented.
Your code is not performing as expected, but you don’t notice.
Your data becomes corrupted, but you don’t notice.
You use a new dataset that renders your statistical methods invalid, but you don’t notice.
You make a mistake in your code.
You use inefficient code.
A second analyst wants to contribute code to the analysis, but can’t do so.
Two analysts want to combine code but cannot.
You aren’t able to track and communicate known next steps in your analysis.
Your collaborators can only make requests in email or meetings, and they aren’t incorporated into the project.
Reproducible
Accurate
Collaborative
Why?
• We're doing a disservice to people by not defining this process, because it
leaves a lot of space for "personal failure / human error"
Human Error
• Some helpful things we would borrow from operations
The Field Guide to Understanding Human Error
• Switch from “blaming” a person to blaming the process that they used
The Field Guide to Understanding Human Error
• The person did not want to make an error, and acted in a way that she
thought wouldn’t create an error
• the current system failed the person with good intentions
Blameless post-mortem
• When an error happens, go through the technical aspects of how the error
happened without assigning fault to the practitioner
Error Happens
Error Happens
Blameless postmortem:
discuss system changes to prevent error
weigh cost of implementing these changes
Error Happens
Blameless postmortem:
discuss system changes to prevent error
weigh cost of implementing these changes
Adopt new process
“Blameful culture”
“An engineer who thinks they’re going to be reprimanded is disincentivized to
give the details necessary to get an understanding of the mechanism, pathology,
and operation of the failure.”
https://codeascraft.com/2012/05/22/blameless-postmortems/
You re-run the analysis and get different results.
Someone else can’t repeat the analysis.
You can’t re-run the analysis on different data.
An external library you’re using is updated, and you can’t recreate the results.
You change code but don’t re-run downstream code, so the results aren’t consistently updated.
You change code but don’t re-execute it, so the results are out of date.
You update your analysis and can’t compare it to previous results.
You can’t point to code changes that resulted in a different analysis results.
A second analyst can’t understand your code.
Can you re-use logic in different parts of the analysis?
You change the logic used in analysis, but only in some places where it’s implemented.
Your code is not performing as expected, but you don’t notice.
Your data becomes corrupted, but you don’t notice.
You use a new dataset that renders your statistical methods invalid, but you don’t notice.
You make a mistake in your code.
You use inefficient code.
A second analyst wants to contribute code to the analysis, but can’t do so.
Two analysts want to combine code but cannot.
You aren’t able to track and communicate known next steps in your analysis.
Your collaborators can only make requests in email or meetings, and they aren’t incorporated into the project.
Error Happens
Blameless postmortem:
discuss system changes to prevent error
weigh cost of implementing these changes
Adopt new process
Executable analysis scripts You re-run the analysis and get different results.
Someone else can’t repeat the analysis.
You can’t re-run the analysis on different data.
Defined dependencies An external library you’re using is updated, and you can’t recreate the results.
You change code but don’t re-run downstream code, so the results aren’t consistently updated.
Watchers for changed code and data You change code but don’t re-execute it, so the results are out of date.
Version control (individual) You update your analysis and can’t compare it to previous results.
You can’t point to code changes that resulted in a different analysis results.
Code review A second analyst can’t understand your code.
Modular, tested code Can you re-use logic in different parts of the analysis?
You change the logic used in analysis, but only in some places where it’s implemented.
Your code is not performing as expected, but you don’t notice.
Assertive testing of data, Your data becomes corrupted, but you don’t notice.
assumptions and results You use a new dataset that renders your statistical methods invalid, but you don’t notice.
Code review You make a mistake in your code.
You use inefficient code.
Version Control (collaborative) A second analyst wants to contribute code to the analysis, but can’t do so.
Two analysts want to combine code but cannot.
Issue tracking You aren’t able to track and communicate known next steps in your analysis.
Your collaborators can only make requests in email or meetings, and they aren’t incorporated into the project.
Executable analysis scripts You re-run the analysis and get different results.
Someone else can’t repeat the analysis.
You can’t re-run the analysis on different data.
Defined dependencies An external library you’re using is updated, and you can’t recreate the results.
You change code but don’t re-run downstream code, so the results aren’t consistently updated.
Watchers for changed code and data You change code but don’t re-execute it, so the results are out of date.
Version control (individual) You update your analysis and can’t compare it to previous results.
You can’t point to code changes that resulted in a different analysis results.
Code review A second analyst can’t understand your code.
Modular, tested code Can you re-use logic in different parts of the analysis?
You change the logic used in analysis, but only in some places where it’s implemented.
Your code is not performing as expected, but you don’t notice.
Assertive testing of data, Your data becomes corrupted, but you don’t notice.
assumptions and results You use a new dataset that renders your statistical methods invalid, but you don’t notice.
Code review You make a mistake in your code.
You use inefficient code.
Version Control (collaborative) A second analyst wants to contribute code to the analysis, but can’t do so.
Two analysts want to combine code but cannot.
Issue tracking You aren’t able to track and communicate known next steps in your analysis.
Your collaborators can only make requests in email or meetings, and they aren’t incorporated into the project.
“Opinions”
Opinionated
• 30+ years of experience at being opinionated
Opinionated
• “Hilary, I never fight with anyone else except for you” — a friend, exasperated,
at his birthday party
How Not To Win Friends and Influence People
How Not To Win Friends and Influence People
How Not To Win Friends and Influence People
Opinionated
• “A funny thing happens when engineers make mistakes and feel safe when
giving details about it: they are not only willing to be held accountable, they
are also enthusiastic in helping the rest of the company avoid the
same error in the future. They are, after all, the most expert in their own
error. They ought to be heavily involved in coming up with remediation items.”
https://codeascraft.com/2012/05/22/blameless-postmortems/
Opinionated Software
• Shift from “I know better than you” to “lots of people have run into this problem
before, and here’s software that makes a solution easy”
Opinionated Software
“Opinionated Software is a software product that believes a certain way of
approaching a business process is inherently better and provides software
crafted around that approach.”
https://medium.com/@stueccles/the-rise-of-opinionated-software-ca1ba0140d5b#.by7aq2c3c
Opinionated Software
“It’s a strong disagreement with the conventional wisdom that everything should
be configurable, that the framework should be impartial and objective. In my
mind, that’s the same as saying that everything should be equally hard.”
— David Heinemeier Hansson
Non-opinionated software
This is bowling. There are rules.
This is bowling. There are rules.
analysis
This is bowling. There are rules.
analysis development
Opinionated Analysis Development
Define the process of technically creating the analysis
Define opinions based on common process errors /
Shift blame away from individual practitioners using blameless postmortems
Push for software that makes it easy to implements opinions
Focus on creativity!
Opinionated Analysis Development
Define the process of technically creating the analysis
Define opinions based on common process errors /
Shift blame away from individual practitioners using blameless postmortems
Push for software that makes it easy to implements opinions
Focus on creativity!
How Not To Win Friends and Influence People
Thanks!
Hilary Parker
@hspter

Weitere ähnliche Inhalte

Andere mochten auch

SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
SOA Knowledge Kit, Developer Productivity  and Performance Comparison AnalysisSOA Knowledge Kit, Developer Productivity  and Performance Comparison Analysis
SOA Knowledge Kit, Developer Productivity and Performance Comparison AnalysisClever Moe
 
Qlik-Education-Catalog-EN
Qlik-Education-Catalog-ENQlik-Education-Catalog-EN
Qlik-Education-Catalog-ENMarco Zampieri
 
Ciso executive summit 2012
Ciso executive summit 2012Ciso executive summit 2012
Ciso executive summit 2012Bill Burns
 
Sampling graphs efficiently - MAD Stat (TSE)
Sampling graphs efficiently - MAD Stat (TSE)Sampling graphs efficiently - MAD Stat (TSE)
Sampling graphs efficiently - MAD Stat (TSE)Antoine Rebecq
 
Salesforce Certification | Salesforce Careers | Salesforce Training For Begin...
Salesforce Certification | Salesforce Careers | Salesforce Training For Begin...Salesforce Certification | Salesforce Careers | Salesforce Training For Begin...
Salesforce Certification | Salesforce Careers | Salesforce Training For Begin...Edureka!
 
Data science as a science
Data science as a scienceData science as a science
Data science as a sciencejtleek
 
Measures of dispersion
Measures of dispersionMeasures of dispersion
Measures of dispersionDrZahid Khan
 
Get Your Dietary Fats Straight
Get Your Dietary Fats StraightGet Your Dietary Fats Straight
Get Your Dietary Fats StraightFood Insight
 
Tracxn Research - Chatbots Startup Landscape, June 2016
Tracxn Research - Chatbots Startup Landscape, June 2016Tracxn Research - Chatbots Startup Landscape, June 2016
Tracxn Research - Chatbots Startup Landscape, June 2016Tracxn
 
The Little Guide to Amazing Conversation
The Little Guide to Amazing ConversationThe Little Guide to Amazing Conversation
The Little Guide to Amazing ConversationVanessa Van Edwards
 
How to Write a Content Marketing Plan Step-by-Step
How to Write a Content Marketing Plan Step-by-StepHow to Write a Content Marketing Plan Step-by-Step
How to Write a Content Marketing Plan Step-by-StepBuffer
 
LinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-PresentedLinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-PresentedSlideShare
 
State of the Word 2011
State of the Word 2011State of the Word 2011
State of the Word 2011photomatt
 

Andere mochten auch (15)

SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
SOA Knowledge Kit, Developer Productivity  and Performance Comparison AnalysisSOA Knowledge Kit, Developer Productivity  and Performance Comparison Analysis
SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
 
Qlik-Education-Catalog-EN
Qlik-Education-Catalog-ENQlik-Education-Catalog-EN
Qlik-Education-Catalog-EN
 
Ciso executive summit 2012
Ciso executive summit 2012Ciso executive summit 2012
Ciso executive summit 2012
 
Sampling graphs efficiently - MAD Stat (TSE)
Sampling graphs efficiently - MAD Stat (TSE)Sampling graphs efficiently - MAD Stat (TSE)
Sampling graphs efficiently - MAD Stat (TSE)
 
Capparelli, Carlos Eduardo
Capparelli, Carlos EduardoCapparelli, Carlos Eduardo
Capparelli, Carlos Eduardo
 
Presentation of data
Presentation of dataPresentation of data
Presentation of data
 
Salesforce Certification | Salesforce Careers | Salesforce Training For Begin...
Salesforce Certification | Salesforce Careers | Salesforce Training For Begin...Salesforce Certification | Salesforce Careers | Salesforce Training For Begin...
Salesforce Certification | Salesforce Careers | Salesforce Training For Begin...
 
Data science as a science
Data science as a scienceData science as a science
Data science as a science
 
Measures of dispersion
Measures of dispersionMeasures of dispersion
Measures of dispersion
 
Get Your Dietary Fats Straight
Get Your Dietary Fats StraightGet Your Dietary Fats Straight
Get Your Dietary Fats Straight
 
Tracxn Research - Chatbots Startup Landscape, June 2016
Tracxn Research - Chatbots Startup Landscape, June 2016Tracxn Research - Chatbots Startup Landscape, June 2016
Tracxn Research - Chatbots Startup Landscape, June 2016
 
The Little Guide to Amazing Conversation
The Little Guide to Amazing ConversationThe Little Guide to Amazing Conversation
The Little Guide to Amazing Conversation
 
How to Write a Content Marketing Plan Step-by-Step
How to Write a Content Marketing Plan Step-by-StepHow to Write a Content Marketing Plan Step-by-Step
How to Write a Content Marketing Plan Step-by-Step
 
LinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-PresentedLinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-Presented
 
State of the Word 2011
State of the Word 2011State of the Word 2011
State of the Word 2011
 

Ähnlich wie Opinionated Analysis Development -- rstudio::conf

Opinionated Analysis Development -- EARL SF Keynote
Opinionated Analysis Development -- EARL SF KeynoteOpinionated Analysis Development -- EARL SF Keynote
Opinionated Analysis Development -- EARL SF KeynoteHilary Parker
 
Traps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit WindowsTraps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit WindowsPVS-Studio
 
Helping Programmers Write Better Tests
Helping Programmers Write Better TestsHelping Programmers Write Better Tests
Helping Programmers Write Better TestsGeoffrey Dunn
 
Code Review
Code ReviewCode Review
Code ReviewRavi Raj
 
Software_Testing_Overview.pptx
Software_Testing_Overview.pptxSoftware_Testing_Overview.pptx
Software_Testing_Overview.pptxJayPrakash255
 
Problems of testing 64-bit applications
Problems of testing 64-bit applicationsProblems of testing 64-bit applications
Problems of testing 64-bit applicationsPVS-Studio
 
Using Data Effectively: Beyond Art and Science
Using Data Effectively: Beyond Art and ScienceUsing Data Effectively: Beyond Art and Science
Using Data Effectively: Beyond Art and ScienceC4Media
 
STM-UNIT-1.pptx
STM-UNIT-1.pptxSTM-UNIT-1.pptx
STM-UNIT-1.pptxnischal55
 
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdfcode_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdfsarah david
 
Introducing Systems Analysis Design Development
Introducing Systems Analysis Design DevelopmentIntroducing Systems Analysis Design Development
Introducing Systems Analysis Design Developmentbsadd
 
Static white box testing lecture 12
Static white box testing lecture 12Static white box testing lecture 12
Static white box testing lecture 12Abdul Basit
 
5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile Development5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile DevelopmentArin Sime
 
White box testing
White box testingWhite box testing
White box testingAbdul Basit
 
Code Smell and Refactoring
Code Smell and RefactoringCode Smell and Refactoring
Code Smell and Refactoringkimsrung lov
 
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptxcode_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptxsarah david
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsShafiul Azam Chowdhury
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team developmentPVS-Studio
 

Ähnlich wie Opinionated Analysis Development -- rstudio::conf (20)

Opinionated Analysis Development -- EARL SF Keynote
Opinionated Analysis Development -- EARL SF KeynoteOpinionated Analysis Development -- EARL SF Keynote
Opinionated Analysis Development -- EARL SF Keynote
 
Traps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit WindowsTraps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit Windows
 
Helping Programmers Write Better Tests
Helping Programmers Write Better TestsHelping Programmers Write Better Tests
Helping Programmers Write Better Tests
 
Code Review
Code ReviewCode Review
Code Review
 
Software_Testing_Overview.pptx
Software_Testing_Overview.pptxSoftware_Testing_Overview.pptx
Software_Testing_Overview.pptx
 
Problems of testing 64-bit applications
Problems of testing 64-bit applicationsProblems of testing 64-bit applications
Problems of testing 64-bit applications
 
Stm unit1
Stm unit1Stm unit1
Stm unit1
 
Using Data Effectively: Beyond Art and Science
Using Data Effectively: Beyond Art and ScienceUsing Data Effectively: Beyond Art and Science
Using Data Effectively: Beyond Art and Science
 
STM-UNIT-1.pptx
STM-UNIT-1.pptxSTM-UNIT-1.pptx
STM-UNIT-1.pptx
 
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdfcode_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
 
Introducing Systems Analysis Design Development
Introducing Systems Analysis Design DevelopmentIntroducing Systems Analysis Design Development
Introducing Systems Analysis Design Development
 
Code smell overview
Code smell overviewCode smell overview
Code smell overview
 
Static white box testing lecture 12
Static white box testing lecture 12Static white box testing lecture 12
Static white box testing lecture 12
 
5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile Development5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile Development
 
White box testing
White box testingWhite box testing
White box testing
 
Code Smell and Refactoring
Code Smell and RefactoringCode Smell and Refactoring
Code Smell and Refactoring
 
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptxcode_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
#Resource1
#Resource1#Resource1
#Resource1
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team development
 

Mehr von Hilary Parker

WiDS Claremont 2022.pdf
WiDS Claremont 2022.pdfWiDS Claremont 2022.pdf
WiDS Claremont 2022.pdfHilary Parker
 
rstudio::conf(2019L)
rstudio::conf(2019L)rstudio::conf(2019L)
rstudio::conf(2019L)Hilary Parker
 
Using Data Effectively: Beyond Art and Science
Using Data Effectively: Beyond Art and ScienceUsing Data Effectively: Beyond Art and Science
Using Data Effectively: Beyond Art and ScienceHilary Parker
 
Women in Analytics Conference, April 2018
Women in Analytics Conference, April 2018Women in Analytics Conference, April 2018
Women in Analytics Conference, April 2018Hilary Parker
 

Mehr von Hilary Parker (6)

WiDS Claremont 2022.pdf
WiDS Claremont 2022.pdfWiDS Claremont 2022.pdf
WiDS Claremont 2022.pdf
 
eCOTS 2020
eCOTS 2020eCOTS 2020
eCOTS 2020
 
rstudio::conf(2019L)
rstudio::conf(2019L)rstudio::conf(2019L)
rstudio::conf(2019L)
 
Using Data Effectively: Beyond Art and Science
Using Data Effectively: Beyond Art and ScienceUsing Data Effectively: Beyond Art and Science
Using Data Effectively: Beyond Art and Science
 
ICOTS 2018
ICOTS 2018ICOTS 2018
ICOTS 2018
 
Women in Analytics Conference, April 2018
Women in Analytics Conference, April 2018Women in Analytics Conference, April 2018
Women in Analytics Conference, April 2018
 

Kürzlich hochgeladen

Aspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraAspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraGovindSinghDasila
 
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...gajnagarg
 
Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...
Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...
Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...HyderabadDolls
 
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...gajnagarg
 
Digital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareDigital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareGraham Ware
 
20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdf20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdfkhraisr
 
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样wsppdmt
 
Computer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdfComputer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdfSayantanBiswas37
 
Statistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbersStatistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numberssuginr1
 
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...Health
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制vexqp
 
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...
Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...Bertram Ludäscher
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Researchmichael115558
 
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...gajnagarg
 
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...gajnagarg
 
Dubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls DubaiDubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls Dubaikojalkojal131
 
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...HyderabadDolls
 
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...kumargunjan9515
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteedamy56318795
 

Kürzlich hochgeladen (20)

Aspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraAspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - Almora
 
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
 
Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...
Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...
Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...
 
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
 
Digital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareDigital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham Ware
 
20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdf20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdf
 
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
 
Computer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdfComputer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdf
 
Statistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbersStatistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbers
 
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
 
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...
Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
 
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
 
Dubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls DubaiDubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls Dubai
 
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
 
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
 

Opinionated Analysis Development -- rstudio::conf

  • 2. Not So Standard Deviations
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 9.
  • 10.
  • 13. Narrative • What models are you going to use? • What argument are you going to make? • How are you going to convince your audience of something?
  • 14. Technical Artifact • What tools are you going to use to make the deliverable? • What technical and coding choices will you make for producing the deliverable?
  • 15.
  • 16. disclaimer: Karl is extremely nice, helpful & non-judgmental
  • 18.
  • 19. ment
  • 20. Why? • Creating an analysis is a hard, error-ridden process that we yada-yada away right now
  • 21. Why? • Creating an analysis is a hard, error-ridden process that we yada-yada away right now • don’t want to “limit creativity” • embarrassed by personal process
  • 22. Why? • Creating an analysis is a hard, error-ridden process that we yada-yada away right now • don’t want to “limit creativity” • embarrassed by personal process
  • 23. Why? • There are known, common problems when creating an analysis (as well as solutions to these problems) • Making these easy to avoid frees up time for creativity
  • 24. You re-run the analysis and get different results. Someone else can’t repeat the analysis. You can’t re-run the analysis on different data. An external library you’re using is updated, and you can’t recreate the results. You change code but don’t re-run downstream code, so the results aren’t consistently updated. You change code but don’t re-execute it, so the results are out of date. You update your analysis and can’t compare it to previous results. You can’t point to code changes that resulted in a different analysis results. A second analyst can’t understand your code. Can you re-use logic in different parts of the analysis? You change the logic used in analysis, but only in some places where it’s implemented. Your code is not performing as expected, but you don’t notice. Your data becomes corrupted, but you don’t notice. You use a new dataset that renders your statistical methods invalid, but you don’t notice. You make a mistake in your code. You use inefficient code. A second analyst wants to contribute code to the analysis, but can’t do so. Two analysts want to combine code but cannot. You aren’t able to track and communicate known next steps in your analysis. Your collaborators can only make requests in email or meetings, and they aren’t incorporated into the project.
  • 25. You re-run the analysis and get different results. Someone else can’t repeat the analysis. You can’t re-run the analysis on different data. An external library you’re using is updated, and you can’t recreate the results. You change code but don’t re-run downstream code, so the results aren’t consistently updated. You change code but don’t re-execute it, so the results are out of date. You update your analysis and can’t compare it to previous results. You can’t point to code changes that resulted in a different analysis results. A second analyst can’t understand your code. Can you re-use logic in different parts of the analysis? You change the logic used in analysis, but only in some places where it’s implemented. Your code is not performing as expected, but you don’t notice. Your data becomes corrupted, but you don’t notice. You use a new dataset that renders your statistical methods invalid, but you don’t notice. You make a mistake in your code. You use inefficient code. A second analyst wants to contribute code to the analysis, but can’t do so. Two analysts want to combine code but cannot. You aren’t able to track and communicate known next steps in your analysis. Your collaborators can only make requests in email or meetings, and they aren’t incorporated into the project. Reproducible Accurate Collaborative
  • 26. Why? • We're doing a disservice to people by not defining this process, because it leaves a lot of space for "personal failure / human error"
  • 27. Human Error • Some helpful things we would borrow from operations
  • 28.
  • 29. The Field Guide to Understanding Human Error • Switch from “blaming” a person to blaming the process that they used
  • 30. The Field Guide to Understanding Human Error • The person did not want to make an error, and acted in a way that she thought wouldn’t create an error • the current system failed the person with good intentions
  • 31.
  • 32. Blameless post-mortem • When an error happens, go through the technical aspects of how the error happened without assigning fault to the practitioner
  • 34. Error Happens Blameless postmortem: discuss system changes to prevent error weigh cost of implementing these changes
  • 35. Error Happens Blameless postmortem: discuss system changes to prevent error weigh cost of implementing these changes Adopt new process
  • 36. “Blameful culture” “An engineer who thinks they’re going to be reprimanded is disincentivized to give the details necessary to get an understanding of the mechanism, pathology, and operation of the failure.” https://codeascraft.com/2012/05/22/blameless-postmortems/
  • 37. You re-run the analysis and get different results. Someone else can’t repeat the analysis. You can’t re-run the analysis on different data. An external library you’re using is updated, and you can’t recreate the results. You change code but don’t re-run downstream code, so the results aren’t consistently updated. You change code but don’t re-execute it, so the results are out of date. You update your analysis and can’t compare it to previous results. You can’t point to code changes that resulted in a different analysis results. A second analyst can’t understand your code. Can you re-use logic in different parts of the analysis? You change the logic used in analysis, but only in some places where it’s implemented. Your code is not performing as expected, but you don’t notice. Your data becomes corrupted, but you don’t notice. You use a new dataset that renders your statistical methods invalid, but you don’t notice. You make a mistake in your code. You use inefficient code. A second analyst wants to contribute code to the analysis, but can’t do so. Two analysts want to combine code but cannot. You aren’t able to track and communicate known next steps in your analysis. Your collaborators can only make requests in email or meetings, and they aren’t incorporated into the project.
  • 38. Error Happens Blameless postmortem: discuss system changes to prevent error weigh cost of implementing these changes Adopt new process
  • 39. Executable analysis scripts You re-run the analysis and get different results. Someone else can’t repeat the analysis. You can’t re-run the analysis on different data. Defined dependencies An external library you’re using is updated, and you can’t recreate the results. You change code but don’t re-run downstream code, so the results aren’t consistently updated. Watchers for changed code and data You change code but don’t re-execute it, so the results are out of date. Version control (individual) You update your analysis and can’t compare it to previous results. You can’t point to code changes that resulted in a different analysis results. Code review A second analyst can’t understand your code. Modular, tested code Can you re-use logic in different parts of the analysis? You change the logic used in analysis, but only in some places where it’s implemented. Your code is not performing as expected, but you don’t notice. Assertive testing of data, Your data becomes corrupted, but you don’t notice. assumptions and results You use a new dataset that renders your statistical methods invalid, but you don’t notice. Code review You make a mistake in your code. You use inefficient code. Version Control (collaborative) A second analyst wants to contribute code to the analysis, but can’t do so. Two analysts want to combine code but cannot. Issue tracking You aren’t able to track and communicate known next steps in your analysis. Your collaborators can only make requests in email or meetings, and they aren’t incorporated into the project.
  • 40. Executable analysis scripts You re-run the analysis and get different results. Someone else can’t repeat the analysis. You can’t re-run the analysis on different data. Defined dependencies An external library you’re using is updated, and you can’t recreate the results. You change code but don’t re-run downstream code, so the results aren’t consistently updated. Watchers for changed code and data You change code but don’t re-execute it, so the results are out of date. Version control (individual) You update your analysis and can’t compare it to previous results. You can’t point to code changes that resulted in a different analysis results. Code review A second analyst can’t understand your code. Modular, tested code Can you re-use logic in different parts of the analysis? You change the logic used in analysis, but only in some places where it’s implemented. Your code is not performing as expected, but you don’t notice. Assertive testing of data, Your data becomes corrupted, but you don’t notice. assumptions and results You use a new dataset that renders your statistical methods invalid, but you don’t notice. Code review You make a mistake in your code. You use inefficient code. Version Control (collaborative) A second analyst wants to contribute code to the analysis, but can’t do so. Two analysts want to combine code but cannot. Issue tracking You aren’t able to track and communicate known next steps in your analysis. Your collaborators can only make requests in email or meetings, and they aren’t incorporated into the project. “Opinions”
  • 41. Opinionated • 30+ years of experience at being opinionated
  • 42. Opinionated • “Hilary, I never fight with anyone else except for you” — a friend, exasperated, at his birthday party
  • 43. How Not To Win Friends and Influence People
  • 44. How Not To Win Friends and Influence People
  • 45. How Not To Win Friends and Influence People
  • 46. Opinionated • “A funny thing happens when engineers make mistakes and feel safe when giving details about it: they are not only willing to be held accountable, they are also enthusiastic in helping the rest of the company avoid the same error in the future. They are, after all, the most expert in their own error. They ought to be heavily involved in coming up with remediation items.” https://codeascraft.com/2012/05/22/blameless-postmortems/
  • 47. Opinionated Software • Shift from “I know better than you” to “lots of people have run into this problem before, and here’s software that makes a solution easy”
  • 48. Opinionated Software “Opinionated Software is a software product that believes a certain way of approaching a business process is inherently better and provides software crafted around that approach.” https://medium.com/@stueccles/the-rise-of-opinionated-software-ca1ba0140d5b#.by7aq2c3c
  • 49. Opinionated Software “It’s a strong disagreement with the conventional wisdom that everything should be configurable, that the framework should be impartial and objective. In my mind, that’s the same as saying that everything should be equally hard.” — David Heinemeier Hansson
  • 51. This is bowling. There are rules.
  • 52. This is bowling. There are rules. analysis
  • 53. This is bowling. There are rules. analysis development
  • 54. Opinionated Analysis Development Define the process of technically creating the analysis Define opinions based on common process errors / Shift blame away from individual practitioners using blameless postmortems Push for software that makes it easy to implements opinions Focus on creativity!
  • 55. Opinionated Analysis Development Define the process of technically creating the analysis Define opinions based on common process errors / Shift blame away from individual practitioners using blameless postmortems Push for software that makes it easy to implements opinions Focus on creativity!
  • 56. How Not To Win Friends and Influence People