Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The Dark Art of Debugging
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
eojthebrave
May 22, 2015
Technology
620
0
Share
The Dark Art of Debugging
A talk about developing the soft-skills required to be a good software debugger.
eojthebrave
May 22, 2015
More Decks by eojthebrave
See All by eojthebrave
Altering, Extending, and Enhancing, Drupal 8
eojthebrave
4
990
An Overview of the Drupal 8 Plugin System
eojthebrave
2
450
A Developers Primer to Managing Developers
eojthebrave
0
480
Building Web Services with Drupal 7
eojthebrave
0
420
We Need to Teach People Drupal 8. Now.
eojthebrave
0
320
Thoughts About Presenting
eojthebrave
0
380
Views! Huh? What is it good for?
eojthebrave
1
240
The Incredible Form API
eojthebrave
2
390
Recurring Billing is hard, is hard, is hard.
eojthebrave
2
550
Other Decks in Technology
See All in Technology
自称宇宙最速で不合格となったAIP-C01にリベンジを果たすべくAIで問題集アプリを作ってみた。
yama3133
0
110
論文紹介:Pixal3D (SIGGRAPH 2026)
tenten0727
0
720
Loadbalancing exporter internals
ymotongpoo
1
130
TypeScriptとAngular Signal で実現する保守性の高いアプリケーション設計 - 3層アーキテクチャによる責務分離の実践(たつかわ) https://2026.tskaigi.org/talks/10
nealle
1
340
AI とサービス・デザイン / AI and Service Design
ks91
PRO
0
170
Claude Codeですべての日常業務を爆速化しよう!
minorun365
PRO
14
11k
Claude Code x Accounting
kawaguti
PRO
1
310
AI時代に求められる思考のパラダイムシフト
nrinetcom
PRO
1
140
『家族アルバム みてね』における インシデント対応との向き合い方 / Approach incident response in Family Album
kohbis
2
160
コーポレートサイトのアクセシビリティ改善とJIS準拠への実践
lycorptech_jp
PRO
2
140
TSKaigi 2026 - 10秒のビルドを1秒へ:tsdownが切り拓く2026年のTypeScriptライブラリ開発
teamlab
PRO
2
260
まだ道半ば、AI-DLCを歩み始めている話
news_it_enj
2
170
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
310
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
130
Paper Plane (Part 1)
katiecoart
PRO
0
7.8k
Speed Design
sergeychernyshev
33
1.7k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Documentation Writing (for coders)
carmenintech
77
5.3k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.8k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
360
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
120
Building Applications with DynamoDB
mza
96
7k
Transcript
The Dark Art of Debugging php[tek] 2015 - Chicago Joe
(@eojthebrave) Shindelar https://joind.in/event/view /3183
Hi. I’m Joe Shindelar @eojthebrave
5 Minutes - GO! + Bugs are inevitable + Debugging
is a science + Replicate, Isolate, Understand, Fix + Practice …
So … where do bugs come from?
Software: Is a set of written instructions provided for a
computer to interpret and use to accomplish a task.
Software: Is a set of written instructions provided for a
computer to interpret and use to accomplish a task. Bugs: Are the defects that arise when those instructions are incorrectly translated.
“There’s a space between zero and one, between the way
the machine counts and thinks and the way we count and think. When you search for explanations for software’s bugs and delays and stubborn resistance to human desires, that space is where you’ll find them.” - Scott Rosenberg -Dreaming In Code
The ONLY way to be a zero bug programmer is
to not write any code.
Debugging is a practical application of both technical skills and
analytical abilities
This presentation is not about tools. But tools play an
important roll in debugging. Learn your tools. Use your tools.
+ Replicate + Isolate + Understand + Fix
Ready? Fire! Aim. Give yourself 10 minutes to jump in
and dirty- debug. But STOP before you go crazy.
STEP ONE Replicate the problem
It is a capital mistake to theorize before one has
data. Insensibly one begins to twist facts to suit theories, instead of theories to suit facts. - Sherlock Holmes Quote -A Scandal in Bohemia
Replicate + Keep a log
Replicate + Keep a log + Get it to fail
Replicate + Keep a log + Get it to fail
+ Lay a trap
Replicate + Keep a log + Get it to fail
+ Lay a trap + Stimulate. Don’t simulate
Replicate + Keep a log + Get it to fail
+ Lay a trap + Stimulate. Don’t simulate + Automate the failure
Goal: Generate a list of steps
STEP TWO Isolate the problem
There is nothing more deceptive than an obvious fact. -
Sherlock Holmes Quote - The Bascombe Valley Mystery
Isolate + Avoid easter egging
Isolate + Avoid easter egging + Check the plug
Isolate + Avoid easter egging + Check the plug +
Divide & conquer
Isolate + Avoid easter egging + Check the plug +
Divide & conquer + Change one thing at time
Isolate + Avoid easter egging + Check the plug +
Divide & conquer + Change one thing at time + Stop thinking and look
Goal: Explain what is causing the problem to occur. Include
details about application state, time, and inputs.
STEP THREE Understand the problem
Nothing clears up a case so much as stating it
to another person. - Sherlock Holmes Quote - Silver Blaze
Understand + Brain games
Avoid confirmation bias Beware the availability heuristic
Understand + Brain games + Don’t assume anything. Ever
Understand + Brain games + Don’t assume anything. Ever +
Practice tempered humility
Understand + Brain games + Don’t assume anything. Ever +
Practice tempered humility + Read the manual
“Why bother, I can look it up in the Phone
book.” - Einstein
Understand + Brain games + Don’t assume anything. Ever +
Practice tempered humility + Read the manual + Ask for help
Goal: Explain the root cause, and how your proposed fix
will solve the problem.
STEP FOUR Fix the problem
Eliminate all other factors, and the one which remains must
be the truth. - Sherlock Holmes Quote - The Sign of Four
Fix + Don’t stop until you’re done
Fix + Don’t stop until you’re done + Establish causality
Fix + Don’t stop until you’re done + Establish causality
+ Test your fix
Goal: Close the ticket!
+ Replicate + Isolate + Understand + Fix
“The greats weren't great because at birth they could paint.
The greats were great cause they paint a lot.” - Macklemore
The Dark Art of Debugging php[tek] 2015 - Chicago Joe
(@eojthebrave) Shindelar https://joind.in/event/view /3183