SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Software Entomology
      or, Where Do Bugs Come From?




    Noah Sussman and Michelle D’Netto
                 etsy
There will always be bugs in production
Most Bugs Are Non-Obvious
Debugging is hard
I can remember the exact
instant when I realized that a
large part of my life... was
going to be spent in finding
mistakes in my own programs

             ~Maurice Wilkes, 1949
Admiral Grace Hopper liked
to tell a story in which a
technician solved a glitch
in the Harvard Mark II
mainframe by pulling an
actual insect out from
between the contacts of
one of its relays
                  ~ The Jargon File
Complete testing is impossible.
Even the simplest Web
site has more edge cases
than you could test, even
if you ran one test per
second until the heat
death of the universe.
assure that the probability of failure
due to hibernating bugs
is sufficiently low
to be acceptable




~ Boris Beizer, 1983
What constitutes a “sufficiently low”
number of problems?
Declaring a
program
“bug free,”
is an
entirely
subjective
excercise
Engineers suck at finding
bugs in their own code
Engineers + designers are



too close to the software
Computer programs cannot detect
bugs in other computer programs
Debugging is twice as
hard as writing the code
in the first place.
             ~ Brian Kernighan
Getting frustrated by software is




not the same as reporting a bug
Non-source-aware users
tend to report only surface
symptoms; they take their
environment for granted...
           ~ ESR, “How Many Eyeballs Tame Complexity”, 1997
Users never read manuals
Users would save time in the long
term by learning more about the
system. But that's not how people
behave in the real world
                         ~Jakob Nielsen
On two occasions
I have been asked...
if you put into the
machine wrong
figures, will the right
answers come Babbage, 1864
             ~Charles
                      out?
When you report a bug




you have done a hard thing
A bug report is a story about a problem and
a good story has a beginning, middle and end
Description of problem
Steps to reproduce
Expected resolution
Provide context, and lots of it
Be Quantitative


   Engineers respond well to hard evidence
Graphmonitorit didn’t happen
At Etsy we
           or over 100,000 real-time metrics
A good editor is
meticulously attentive to detail,
a stickler for technical correctness,
aware of the work as a whole and
sensitive to the expectations of the audience
You are doing science
Keep a journal
Take screenshots (use Skitch)
Log IRC, Skype and other chats
Make multiple redundant backups (use DropBox)
Save everything— you won’t know you need it until you need it
How many times has this happened?
How many users were affected?
How much time has been lost?
What was the overall cost?
Users
The Support
Team spend
the most time
engaging and
empathizing
with users
You are a participant observer
When you talk to your users, and
you write down what you learn,
and you share what you wrote
with others, you’re doing science
digital computer: less than 70 years old,
personal computer: less than 40,
the Web: less than 20,
mobile Web: less than 15
The Web is going to keep on growing and changing
80% of us aren’t
even on the Web yet
Most users of a Web site are doing something that is entirely new to them




                 And you are teaching them how to do it
Software Entomology or Where Do Bugs Come From?

Más contenido relacionado

La actualidad más candente

CS5032 Lecture 6: Human Error 2
CS5032 Lecture 6: Human Error 2CS5032 Lecture 6: Human Error 2
CS5032 Lecture 6: Human Error 2
John Rooksby
 

La actualidad más candente (11)

The Revolution in an Industry That Will Change The World (Test & Measurement)
The Revolution in an Industry That Will Change The World (Test & Measurement)The Revolution in an Industry That Will Change The World (Test & Measurement)
The Revolution in an Industry That Will Change The World (Test & Measurement)
 
Itil for failers
Itil for failersItil for failers
Itil for failers
 
Making sense of messy problems - Systems thinking for interaction designers
Making sense of messy problems - Systems thinking for interaction designersMaking sense of messy problems - Systems thinking for interaction designers
Making sense of messy problems - Systems thinking for interaction designers
 
CS5032 Lecture 6: Human Error 2
CS5032 Lecture 6: Human Error 2CS5032 Lecture 6: Human Error 2
CS5032 Lecture 6: Human Error 2
 
Testing Hyper-Complex Systems: What Can We Know? What Can We Claim?
Testing Hyper-Complex Systems: What Can We Know? What Can We Claim?Testing Hyper-Complex Systems: What Can We Know? What Can We Claim?
Testing Hyper-Complex Systems: What Can We Know? What Can We Claim?
 
8 PEOPLE, 4 SERVICES, 40 COUNTRIES - Wojciech Gaca
8 PEOPLE, 4 SERVICES, 40 COUNTRIES - Wojciech Gaca8 PEOPLE, 4 SERVICES, 40 COUNTRIES - Wojciech Gaca
8 PEOPLE, 4 SERVICES, 40 COUNTRIES - Wojciech Gaca
 
Patterns for the People
Patterns for the PeoplePatterns for the People
Patterns for the People
 
AI Fables, Facts and Futures: Threat, Promise or Saviour
AI Fables, Facts and Futures: Threat, Promise or SaviourAI Fables, Facts and Futures: Threat, Promise or Saviour
AI Fables, Facts and Futures: Threat, Promise or Saviour
 
React Next Conference slides: ReactJS Worst practices
React Next Conference slides: ReactJS Worst practicesReact Next Conference slides: ReactJS Worst practices
React Next Conference slides: ReactJS Worst practices
 
Fearless Mobile Research
Fearless Mobile ResearchFearless Mobile Research
Fearless Mobile Research
 
Teaching Elephants to Dance, Burr Sutter
Teaching Elephants to Dance, Burr SutterTeaching Elephants to Dance, Burr Sutter
Teaching Elephants to Dance, Burr Sutter
 

Destacado

CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_markCSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CanSecWest
 

Destacado (14)

The Invisible Art Of Software Testing
The Invisible Art Of Software TestingThe Invisible Art Of Software Testing
The Invisible Art Of Software Testing
 
Bullseye or The Testing Wheel
Bullseye or The Testing WheelBullseye or The Testing Wheel
Bullseye or The Testing Wheel
 
Continuous Improvement (GroupOn, Palo Alto 2013)
Continuous Improvement (GroupOn, Palo Alto 2013)Continuous Improvement (GroupOn, Palo Alto 2013)
Continuous Improvement (GroupOn, Palo Alto 2013)
 
Easy Continuous Deployment You Can Trust (Webinar)
Easy Continuous Deployment You Can Trust (Webinar)Easy Continuous Deployment You Can Trust (Webinar)
Easy Continuous Deployment You Can Trust (Webinar)
 
Interview with the Vampire
Interview with the VampireInterview with the Vampire
Interview with the Vampire
 
Transitioning from Traditional to Modern QA
Transitioning from Traditional to Modern QATransitioning from Traditional to Modern QA
Transitioning from Traditional to Modern QA
 
Design Patterns for Scalable Test Automation With Selenium & WebdriverIO
Design Patterns for Scalable Test Automation With Selenium & WebdriverIODesign Patterns for Scalable Test Automation With Selenium & WebdriverIO
Design Patterns for Scalable Test Automation With Selenium & WebdriverIO
 
Selenium and Appium Training from Sauce Labs
Selenium and Appium Training from Sauce LabsSelenium and Appium Training from Sauce Labs
Selenium and Appium Training from Sauce Labs
 
Fringe Accessibility: London Web Standards
Fringe Accessibility: London Web StandardsFringe Accessibility: London Web Standards
Fringe Accessibility: London Web Standards
 
Automation Best Practices
Automation Best PracticesAutomation Best Practices
Automation Best Practices
 
Practical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test AutomationPractical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test Automation
 
Selfish Accessibility: Government Digital Service
Selfish Accessibility: Government Digital ServiceSelfish Accessibility: Government Digital Service
Selfish Accessibility: Government Digital Service
 
[SEN#7] Le Top 100 des entreprises qui recrutent dans le numérique
[SEN#7] Le Top 100 des entreprises qui recrutent dans le numérique[SEN#7] Le Top 100 des entreprises qui recrutent dans le numérique
[SEN#7] Le Top 100 des entreprises qui recrutent dans le numérique
 
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_markCSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
 

Similar a Software Entomology or Where Do Bugs Come From?

Notes on Simulation and GHDL
Notes on Simulation and GHDLNotes on Simulation and GHDL
Notes on Simulation and GHDL
DIlawar Singh
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
Hans Kemp
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
Hans Kemp
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
Hans Kemp
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
Hans Kemp
 
Arti e Culture Digitali Lezione 1, Luca Simeone
Arti e Culture Digitali Lezione 1, Luca SimeoneArti e Culture Digitali Lezione 1, Luca Simeone
Arti e Culture Digitali Lezione 1, Luca Simeone
meetingsalongtheedge
 

Similar a Software Entomology or Where Do Bugs Come From? (20)

Software development
Software developmentSoftware development
Software development
 
Chaos Engineering Without Observability ... Is Just Chaos
Chaos Engineering Without Observability ... Is Just ChaosChaos Engineering Without Observability ... Is Just Chaos
Chaos Engineering Without Observability ... Is Just Chaos
 
WORKSHOP: Making the World Easier with Interaction Design
WORKSHOP: Making the World Easier with Interaction DesignWORKSHOP: Making the World Easier with Interaction Design
WORKSHOP: Making the World Easier with Interaction Design
 
Notes on Simulation and GHDL
Notes on Simulation and GHDLNotes on Simulation and GHDL
Notes on Simulation and GHDL
 
Usability Testing
Usability TestingUsability Testing
Usability Testing
 
Chatbots in 2017 -- Ithaca Talk Dec 6
Chatbots in 2017 -- Ithaca Talk Dec 6Chatbots in 2017 -- Ithaca Talk Dec 6
Chatbots in 2017 -- Ithaca Talk Dec 6
 
The Epistemology of Software Engineering
The Epistemology of Software EngineeringThe Epistemology of Software Engineering
The Epistemology of Software Engineering
 
CCFW.software
CCFW.softwareCCFW.software
CCFW.software
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
 
#TFT12: Amber Case
#TFT12: Amber Case#TFT12: Amber Case
#TFT12: Amber Case
 
Week 13
Week 13Week 13
Week 13
 
The digital workplace
The digital workplaceThe digital workplace
The digital workplace
 
Introduction to computers
Introduction to computersIntroduction to computers
Introduction to computers
 
Arti e Culture Digitali Lezione 1, Luca Simeone
Arti e Culture Digitali Lezione 1, Luca SimeoneArti e Culture Digitali Lezione 1, Luca Simeone
Arti e Culture Digitali Lezione 1, Luca Simeone
 
Dawn of the Devices: A guide to surviving the device apocalypse
Dawn of the Devices: A guide to surviving the device apocalypseDawn of the Devices: A guide to surviving the device apocalypse
Dawn of the Devices: A guide to surviving the device apocalypse
 
Good programming
Good programmingGood programming
Good programming
 
Is Python still production ready ? Ludovic Gasc
Is Python still production ready ? Ludovic GascIs Python still production ready ? Ludovic Gasc
Is Python still production ready ? Ludovic Gasc
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

Software Entomology or Where Do Bugs Come From?