SlideShare ist ein Scribd-Unternehmen logo
1 von 100
Downloaden Sie, um offline zu lesen
OPINIONATED ANALYSIS
DEVELOPMENT
HILARY PARKER
@HSPTER
Not So Standard Deviations
Reproducible
Accurate
Collaborative
SOFTWARE DEVELOPER
SOFTWARE ENGINEER
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?
mastering the statistical tooling :: mastering a musical instrument
mastering the statistical tooling :: mastering a musical instrument
statistical theory :: musical theory
mastering the statistical tooling :: mastering a musical instrument
statistical theory :: musical theory
full analysis :: piece of music
disclaimer: Karl is extremely nice, helpful & non-judgmental
BAD ANALYST? :(
ment
WHY?
don’t want to “limit creativity”
embarrassed by personal process
WHY DOES THAT
MATTER?
There are known, common problems when
developing an analysis
Making these problems easy to avoid frees up time
for the creativity of developing the narrative
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
OPERATIONS
Switch from “blaming” a person to blaming the
process that they used.
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
AN EXAMPLE OF A
SUCCESSFUL(ISH) POST-MORTEM
”
“
— Hilary Parker, college essay
THE INCIDENT:
BROTHER LOSES HIS CD BINDER
ON A PLANE
”
“
— Hilary Parker, college essay
”
“
— Hilary Parker, college essay
TYPE A QUOTE HERE.
• Identify the incident, record what happened
• Change the system to make it hard for a person acting in
good faith to have the incident occur
• Use outside resources and best practices to inform
decisions
• Make trade-offs
BLAMEFUL PROCESS
”
“
— Mom or Dad
“ALEX, KEEP BETTER TRACK OF YOUR
CDS NEXT TIME!”
”
“
— Boss
“CHECK YOUR ANALYSIS MORE
CAREFULLY NEXT TIME!”
”
“
— John Allspaw
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.
Incident 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”
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
DATA AND CODE
You change code but don’t re-execute it, so the
results are out of date.
MODULAR, TESTED
CODE
You can’t 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.
VERSION CONTROL
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.
Two analysts want to combine code but cannot.
ASSERTIVE TESTING OF DATA,
ASSUMPTIONS AND RESULTS
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.
CODE REVIEW
You make a mistake in your code.
You use inefficient code.
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.
WHY DID YOU SPEND MOST OF
YOUR KEYNOTE TIME ON
PROCESS?
WITHOUT GOOD PROCESS,
OPINIONS CAN CREATE TOXIC
CULTURE
30+ YEARS OF BEING
OPINIONATED
”
“
— a friend at his birthday party
HILARY, I NEVER FIGHT WITH
ANYONE ELSE EXCEPT FOR YOU
”
“
–John Allspaw
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/
”
“
–helpful (but misguided) coworker
“You should be using GitHub.”
”
“
“You should be using GitHub.”
“If this is a project where you want to compare past and future results, you might
want to use version control. GitHub is a good option, and RStudio integrates well with
it.”
–actually helpful coworker
”
“
“Excel is the worst.”
–helpful (but misguided) coworker
”
“
“Excel is the worst.”
“Excel does make it hard to create scripts. If you want to redo your analysis
frequently, writing a script will take time now but save you lots of time later.”
–actually helpful coworker
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”
WHY
“OPINIONATED”?
”
“
— Stuart Eccles
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
”
“
–David Heinemeier Hansson, creator of Ruby on Rails
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.
This is bowling. There are rules.
This is bowling. There are rules.
analysis
This is bowling. There are rules.
analysis development
DEFINE THE PROCESS:
ANALYSIS DEVELOPMENT
CREATE AND ENCOURAGE
A BLAMELESS CULTURE
FRAME DISCUSSIONS AROUND
INCIDENTS. DISCUSS OPINIONS,
NOT SOFTWARE CHOICES
ENCOURAGE SOFTWARE MAKERS
TO CREATE OPINIONATED
ANALYSIS SOFTWARE
THANKS!

Weitere ähnliche Inhalte

Ähnlich wie Opinionated Analysis Development -- EARL SF Keynote

Data+Science+in+Python+-+Data+Prep+&+EDA.pdf
Data+Science+in+Python+-+Data+Prep+&+EDA.pdfData+Science+in+Python+-+Data+Prep+&+EDA.pdf
Data+Science+in+Python+-+Data+Prep+&+EDA.pdfneelakandan2001kpm
 
Writing good research papers
Writing good research papersWriting good research papers
Writing good research papersAhmed Sabbah
 
Rated Ranking Evaluator (RRE) Hands-on Relevance Testing @Chorus
Rated Ranking Evaluator (RRE) Hands-on Relevance Testing @ChorusRated Ranking Evaluator (RRE) Hands-on Relevance Testing @Chorus
Rated Ranking Evaluator (RRE) Hands-on Relevance Testing @ChorusSease
 
Helping Programmers Write Better Tests
Helping Programmers Write Better TestsHelping Programmers Write Better Tests
Helping Programmers Write Better TestsGeoffrey Dunn
 
Code Smell and Refactoring
Code Smell and RefactoringCode Smell and Refactoring
Code Smell and Refactoringkimsrung lov
 
Adaptation of the technology of the static code analyzer for developing paral...
Adaptation of the technology of the static code analyzer for developing paral...Adaptation of the technology of the static code analyzer for developing paral...
Adaptation of the technology of the static code analyzer for developing paral...PVS-Studio
 
Code Review
Code ReviewCode Review
Code ReviewRavi Raj
 
STM-UNIT-1.pptx
STM-UNIT-1.pptxSTM-UNIT-1.pptx
STM-UNIT-1.pptxnischal55
 
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
 
Static white box testing lecture 12
Static white box testing lecture 12Static white box testing lecture 12
Static white box testing lecture 12Abdul Basit
 
White box testing
White box testingWhite box testing
White box testingAbdul Basit
 
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
 
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
 
Programming Fundamentals lecture 3
Programming Fundamentals lecture 3Programming Fundamentals lecture 3
Programming Fundamentals lecture 3REHAN IJAZ
 

Ähnlich wie Opinionated Analysis Development -- EARL SF Keynote (20)

Practices and Tools for Better Software Testing
Practices and Tools for  Better Software TestingPractices and Tools for  Better Software Testing
Practices and Tools for Better Software Testing
 
Code smell overview
Code smell overviewCode smell overview
Code smell overview
 
Data+Science+in+Python+-+Data+Prep+&+EDA.pdf
Data+Science+in+Python+-+Data+Prep+&+EDA.pdfData+Science+in+Python+-+Data+Prep+&+EDA.pdf
Data+Science+in+Python+-+Data+Prep+&+EDA.pdf
 
Writing good research papers
Writing good research papersWriting good research papers
Writing good research papers
 
Rated Ranking Evaluator (RRE) Hands-on Relevance Testing @Chorus
Rated Ranking Evaluator (RRE) Hands-on Relevance Testing @ChorusRated Ranking Evaluator (RRE) Hands-on Relevance Testing @Chorus
Rated Ranking Evaluator (RRE) Hands-on Relevance Testing @Chorus
 
Helping Programmers Write Better Tests
Helping Programmers Write Better TestsHelping Programmers Write Better Tests
Helping Programmers Write Better Tests
 
Mingle spot project
Mingle spot projectMingle spot project
Mingle spot project
 
Mingle spot project
Mingle spot  project Mingle spot  project
Mingle spot project
 
Code Smell and Refactoring
Code Smell and RefactoringCode Smell and Refactoring
Code Smell and Refactoring
 
Adaptation of the technology of the static code analyzer for developing paral...
Adaptation of the technology of the static code analyzer for developing paral...Adaptation of the technology of the static code analyzer for developing paral...
Adaptation of the technology of the static code analyzer for developing paral...
 
Code Review
Code ReviewCode Review
Code Review
 
STM-UNIT-1.pptx
STM-UNIT-1.pptxSTM-UNIT-1.pptx
STM-UNIT-1.pptx
 
#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
 
Static white box testing lecture 12
Static white box testing lecture 12Static white box testing lecture 12
Static white box testing lecture 12
 
White box testing
White box testingWhite box testing
White box testing
 
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
 
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
 
Stm unit1
Stm unit1Stm unit1
Stm unit1
 
Programming Fundamentals lecture 3
Programming Fundamentals lecture 3Programming Fundamentals lecture 3
Programming Fundamentals lecture 3
 

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
 
testdat: An R package for unit testing of tabular data
testdat: An R package for unit testing of tabular datatestdat: An R package for unit testing of tabular data
testdat: An R package for unit testing of tabular dataHilary Parker
 

Mehr von Hilary Parker (7)

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
 
testdat: An R package for unit testing of tabular data
testdat: An R package for unit testing of tabular datatestdat: An R package for unit testing of tabular data
testdat: An R package for unit testing of tabular data
 

Kürzlich hochgeladen

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
 
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
 
Digital Marketing Plan, how digital marketing works
Digital Marketing Plan, how digital marketing worksDigital Marketing Plan, how digital marketing works
Digital Marketing Plan, how digital marketing worksdeepakthakur548787
 
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default  Presentation : Data Analysis Project PPTPredictive Analysis for Loan Default  Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPTBoston Institute of Analytics
 
Networking Case Study prepared by teacher.pptx
Networking Case Study prepared by teacher.pptxNetworking Case Study prepared by teacher.pptx
Networking Case Study prepared by teacher.pptxHimangsuNath
 
INTRODUCTION TO Natural language processing
INTRODUCTION TO Natural language processingINTRODUCTION TO Natural language processing
INTRODUCTION TO Natural language processingsocarem879
 
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...Dr Arash Najmaei ( Phd., MBA, BSc)
 
English-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdf
English-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdfEnglish-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdf
English-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdfblazblazml
 
Principles and Practices of Data Visualization
Principles and Practices of Data VisualizationPrinciples and Practices of Data Visualization
Principles and Practices of Data VisualizationKianJazayeri1
 
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024Susanna-Assunta Sansone
 
Unveiling the Role of Social Media Suspect Investigators in Preventing Online...
Unveiling the Role of Social Media Suspect Investigators in Preventing Online...Unveiling the Role of Social Media Suspect Investigators in Preventing Online...
Unveiling the Role of Social Media Suspect Investigators in Preventing Online...Milind Agarwal
 
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
 
Student Profile Sample report on improving academic performance by uniting gr...
Student Profile Sample report on improving academic performance by uniting gr...Student Profile Sample report on improving academic performance by uniting gr...
Student Profile Sample report on improving academic performance by uniting gr...Seán Kennedy
 
Minimizing AI Hallucinations/Confabulations and the Path towards AGI with Exa...
Minimizing AI Hallucinations/Confabulations and the Path towards AGI with Exa...Minimizing AI Hallucinations/Confabulations and the Path towards AGI with Exa...
Minimizing AI Hallucinations/Confabulations and the Path towards AGI with Exa...Thomas Poetter
 
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
 
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...Boston Institute of Analytics
 
Cyber awareness ppt on the recorded data
Cyber awareness ppt on the recorded dataCyber awareness ppt on the recorded data
Cyber awareness ppt on the recorded dataTecnoIncentive
 
Decoding Patterns: Customer Churn Prediction Data Analysis Project
Decoding Patterns: Customer Churn Prediction Data Analysis ProjectDecoding Patterns: Customer Churn Prediction Data Analysis Project
Decoding Patterns: Customer Churn Prediction Data Analysis ProjectBoston Institute of Analytics
 
Easter Eggs From Star Wars and in cars 1 and 2
Easter Eggs From Star Wars and in cars 1 and 2Easter Eggs From Star Wars and in cars 1 and 2
Easter Eggs From Star Wars and in cars 1 and 217djon017
 

Kürzlich hochgeladen (20)

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
 
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...
 
Digital Marketing Plan, how digital marketing works
Digital Marketing Plan, how digital marketing worksDigital Marketing Plan, how digital marketing works
Digital Marketing Plan, how digital marketing works
 
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default  Presentation : Data Analysis Project PPTPredictive Analysis for Loan Default  Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPT
 
Networking Case Study prepared by teacher.pptx
Networking Case Study prepared by teacher.pptxNetworking Case Study prepared by teacher.pptx
Networking Case Study prepared by teacher.pptx
 
INTRODUCTION TO Natural language processing
INTRODUCTION TO Natural language processingINTRODUCTION TO Natural language processing
INTRODUCTION TO Natural language processing
 
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
 
English-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdf
English-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdfEnglish-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdf
English-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdf
 
Principles and Practices of Data Visualization
Principles and Practices of Data VisualizationPrinciples and Practices of Data Visualization
Principles and Practices of Data Visualization
 
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
 
Unveiling the Role of Social Media Suspect Investigators in Preventing Online...
Unveiling the Role of Social Media Suspect Investigators in Preventing Online...Unveiling the Role of Social Media Suspect Investigators in Preventing Online...
Unveiling the Role of Social Media Suspect Investigators in Preventing Online...
 
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...
 
Student Profile Sample report on improving academic performance by uniting gr...
Student Profile Sample report on improving academic performance by uniting gr...Student Profile Sample report on improving academic performance by uniting gr...
Student Profile Sample report on improving academic performance by uniting gr...
 
Minimizing AI Hallucinations/Confabulations and the Path towards AGI with Exa...
Minimizing AI Hallucinations/Confabulations and the Path towards AGI with Exa...Minimizing AI Hallucinations/Confabulations and the Path towards AGI with Exa...
Minimizing AI Hallucinations/Confabulations and the Path towards AGI with Exa...
 
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
 
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
 
Cyber awareness ppt on the recorded data
Cyber awareness ppt on the recorded dataCyber awareness ppt on the recorded data
Cyber awareness ppt on the recorded data
 
Decoding Patterns: Customer Churn Prediction Data Analysis Project
Decoding Patterns: Customer Churn Prediction Data Analysis ProjectDecoding Patterns: Customer Churn Prediction Data Analysis Project
Decoding Patterns: Customer Churn Prediction Data Analysis Project
 
Insurance Churn Prediction Data Analysis Project
Insurance Churn Prediction Data Analysis ProjectInsurance Churn Prediction Data Analysis Project
Insurance Churn Prediction Data Analysis Project
 
Easter Eggs From Star Wars and in cars 1 and 2
Easter Eggs From Star Wars and in cars 1 and 2Easter Eggs From Star Wars and in cars 1 and 2
Easter Eggs From Star Wars and in cars 1 and 2
 

Opinionated Analysis Development -- EARL SF Keynote

  • 2. Not So Standard Deviations
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 9.
  • 10.
  • 12.
  • 14. • What models are you going to use? • What argument are you going to make? • How are you going to convince your audience of something?
  • 16. • What tools are you going to use to make the deliverable? • What technical and coding choices will you make for producing the deliverable?
  • 17. mastering the statistical tooling :: mastering a musical instrument
  • 18. mastering the statistical tooling :: mastering a musical instrument statistical theory :: musical theory
  • 19. mastering the statistical tooling :: mastering a musical instrument statistical theory :: musical theory full analysis :: piece of music
  • 20.
  • 21. disclaimer: Karl is extremely nice, helpful & non-judgmental
  • 23.
  • 24. ment
  • 25. WHY?
  • 26.
  • 27. don’t want to “limit creativity” embarrassed by personal process
  • 29. There are known, common problems when developing an analysis Making these problems easy to avoid frees up time for the creativity of developing the narrative
  • 30. 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.
  • 31. 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
  • 33.
  • 34. Switch from “blaming” a person to blaming the process that they used.
  • 35. 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
  • 36. AN EXAMPLE OF A SUCCESSFUL(ISH) POST-MORTEM
  • 37.
  • 38. ” “ — Hilary Parker, college essay
  • 39.
  • 40. THE INCIDENT: BROTHER LOSES HIS CD BINDER ON A PLANE
  • 41. ” “ — Hilary Parker, college essay
  • 42.
  • 43.
  • 44. ” “ — Hilary Parker, college essay TYPE A QUOTE HERE.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49. • Identify the incident, record what happened • Change the system to make it hard for a person acting in good faith to have the incident occur • Use outside resources and best practices to inform decisions • Make trade-offs
  • 51. ” “ — Mom or Dad “ALEX, KEEP BETTER TRACK OF YOUR CDS NEXT TIME!”
  • 52. ” “ — Boss “CHECK YOUR ANALYSIS MORE CAREFULLY NEXT TIME!”
  • 53.
  • 54. ” “ — John Allspaw 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/
  • 55. 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.
  • 56. Incident Happens Blameless postmortem: discuss system changes to prevent error weigh cost of implementing these changes Adopt new process
  • 57. 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.
  • 58. 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”
  • 60. 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.
  • 62. 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.
  • 64. You change code but don’t re-execute it, so the results are out of date.
  • 66. You can’t 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.
  • 68. 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. Two analysts want to combine code but cannot.
  • 69. ASSERTIVE TESTING OF DATA, ASSUMPTIONS AND RESULTS
  • 70. 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.
  • 72. You make a mistake in your code. You use inefficient code.
  • 74. 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.
  • 75.
  • 76. WHY DID YOU SPEND MOST OF YOUR KEYNOTE TIME ON PROCESS?
  • 77. WITHOUT GOOD PROCESS, OPINIONS CAN CREATE TOXIC CULTURE
  • 78. 30+ YEARS OF BEING OPINIONATED
  • 79. ” “ — a friend at his birthday party HILARY, I NEVER FIGHT WITH ANYONE ELSE EXCEPT FOR YOU
  • 80. ” “ –John Allspaw 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/
  • 81.
  • 82.
  • 83.
  • 84. ” “ –helpful (but misguided) coworker “You should be using GitHub.”
  • 85. ” “ “You should be using GitHub.” “If this is a project where you want to compare past and future results, you might want to use version control. GitHub is a good option, and RStudio integrates well with it.” –actually helpful coworker
  • 86. ” “ “Excel is the worst.” –helpful (but misguided) coworker
  • 87. ” “ “Excel is the worst.” “Excel does make it hard to create scripts. If you want to redo your analysis frequently, writing a script will take time now but save you lots of time later.” –actually helpful coworker
  • 88. 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”
  • 90. ” “ — Stuart Eccles 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
  • 91. ” “ –David Heinemeier Hansson, creator of Ruby on Rails 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.
  • 92. This is bowling. There are rules.
  • 93. This is bowling. There are rules. analysis
  • 94. This is bowling. There are rules. analysis development
  • 96. CREATE AND ENCOURAGE A BLAMELESS CULTURE
  • 97. FRAME DISCUSSIONS AROUND INCIDENTS. DISCUSS OPINIONS, NOT SOFTWARE CHOICES
  • 98. ENCOURAGE SOFTWARE MAKERS TO CREATE OPINIONATED ANALYSIS SOFTWARE
  • 99.