SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

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
 

En vedette (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
 

Similaire à 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 developmentAndrey Karpov
 

Similaire à 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
 

Plus de 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
 

Plus de 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
 

Dernier

Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...limedy534
 
Vision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxVision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxellehsormae
 
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝DelhiRS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhijennyeacort
 
Top 5 Best Data Analytics Courses In Queens
Top 5 Best Data Analytics Courses In QueensTop 5 Best Data Analytics Courses In Queens
Top 5 Best Data Analytics Courses In Queensdataanalyticsqueen03
 
Identifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanIdentifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanMYRABACSAFRA2
 
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024thyngster
 
Predicting Salary Using Data Science: A Comprehensive Analysis.pdf
Predicting Salary Using Data Science: A Comprehensive Analysis.pdfPredicting Salary Using Data Science: A Comprehensive Analysis.pdf
Predicting Salary Using Data Science: A Comprehensive Analysis.pdfBoston Institute of Analytics
 
Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...
Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...
Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...ssuserf63bd7
 
RABBIT: A CLI tool for identifying bots based on their GitHub events.
RABBIT: A CLI tool for identifying bots based on their GitHub events.RABBIT: A CLI tool for identifying bots based on their GitHub events.
RABBIT: A CLI tool for identifying bots based on their GitHub events.natarajan8993
 
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...GQ Research
 
Learn How Data Science Changes Our World
Learn How Data Science Changes Our WorldLearn How Data Science Changes Our World
Learn How Data Science Changes Our WorldEduminds Learning
 
modul pembelajaran robotic Workshop _ by Slidesgo.pptx
modul pembelajaran robotic Workshop _ by Slidesgo.pptxmodul pembelajaran robotic Workshop _ by Slidesgo.pptx
modul pembelajaran robotic Workshop _ by Slidesgo.pptxaleedritatuxx
 
20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdfHuman37
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Seán Kennedy
 
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGILLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGIThomas Poetter
 
Real-Time AI Streaming - AI Max Princeton
Real-Time AI  Streaming - AI Max PrincetonReal-Time AI  Streaming - AI Max Princeton
Real-Time AI Streaming - AI Max PrincetonTimothy Spann
 
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...Boston Institute of Analytics
 
Conf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming PipelinesConf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming PipelinesTimothy Spann
 
DBA Basics: Getting Started with Performance Tuning.pdf
DBA Basics: Getting Started with Performance Tuning.pdfDBA Basics: Getting Started with Performance Tuning.pdf
DBA Basics: Getting Started with Performance Tuning.pdfJohn Sterrett
 
April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024
April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024
April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024Timothy Spann
 

Dernier (20)

Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
 
Vision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxVision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptx
 
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝DelhiRS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
 
Top 5 Best Data Analytics Courses In Queens
Top 5 Best Data Analytics Courses In QueensTop 5 Best Data Analytics Courses In Queens
Top 5 Best Data Analytics Courses In Queens
 
Identifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanIdentifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population Mean
 
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
 
Predicting Salary Using Data Science: A Comprehensive Analysis.pdf
Predicting Salary Using Data Science: A Comprehensive Analysis.pdfPredicting Salary Using Data Science: A Comprehensive Analysis.pdf
Predicting Salary Using Data Science: A Comprehensive Analysis.pdf
 
Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...
Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...
Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...
 
RABBIT: A CLI tool for identifying bots based on their GitHub events.
RABBIT: A CLI tool for identifying bots based on their GitHub events.RABBIT: A CLI tool for identifying bots based on their GitHub events.
RABBIT: A CLI tool for identifying bots based on their GitHub events.
 
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
 
Learn How Data Science Changes Our World
Learn How Data Science Changes Our WorldLearn How Data Science Changes Our World
Learn How Data Science Changes Our World
 
modul pembelajaran robotic Workshop _ by Slidesgo.pptx
modul pembelajaran robotic Workshop _ by Slidesgo.pptxmodul pembelajaran robotic Workshop _ by Slidesgo.pptx
modul pembelajaran robotic Workshop _ by Slidesgo.pptx
 
20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...
 
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGILLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI
 
Real-Time AI Streaming - AI Max Princeton
Real-Time AI  Streaming - AI Max PrincetonReal-Time AI  Streaming - AI Max Princeton
Real-Time AI Streaming - AI Max Princeton
 
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
 
Conf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming PipelinesConf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
 
DBA Basics: Getting Started with Performance Tuning.pdf
DBA Basics: Getting Started with Performance Tuning.pdfDBA Basics: Getting Started with Performance Tuning.pdf
DBA Basics: Getting Started with Performance Tuning.pdf
 
April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024
April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024
April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024
 

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