Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The Dark Art of Debugging
Search
eojthebrave
May 22, 2015
Technology
650
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The Dark Art of Debugging
A talk about developing the soft-skills required to be a good software debugger.
eojthebrave
May 22, 2015
Transcript
47 slides
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
More Decks by eojthebrave
See All by eojthebrave
Altering, Extending, and Enhancing, Drupal 8
eojthebrave
4
1k
An Overview of the Drupal 8 Plugin System
eojthebrave
2
480
A Developers Primer to Managing Developers
eojthebrave
0
510
Building Web Services with Drupal 7
eojthebrave
0
430
We Need to Teach People Drupal 8. Now.
eojthebrave
0
350
Thoughts About Presenting
eojthebrave
0
400
Views! Huh? What is it good for?
eojthebrave
1
250
The Incredible Form API
eojthebrave
2
410
Recurring Billing is hard, is hard, is hard.
eojthebrave
2
560
Other Decks in Technology
See All in Technology
狙われているAPIの脆弱性!今こそ手をつけるべき根本的な対策とは?
nagix
0
120
[dbts2026]数十PBの超巨大データ×AI活用を支えるSnowflakeの実力〜大規模環境におけるアーキテクチャと運用のリアル〜
y_matsubara
0
140
あの日、見つかっていなかったらどうなっていたか
kazzpapa3
2
150
農夫は秘伝のタレを知らない - NOBODY KNOWS THE HIDDEN SOURCE - Kaggriculture 3rd Place Solution
masspeaks
0
220
「任されビリティ」で引き受けて「よしなりてぃ」に頼らず任せる / Accept tasks with "makasarebility" and hand them over without relying on "yoshinarily"
pauli
0
140
プロダクションコードにおける encoding/json から encoding/json/v2 へのスムーズな移行
sansantech
PRO
1
400
MCPでAIが自分で調べに行く
cdataj
0
170
Biohub - Cell Tracking During Development 5th place solution
rist
0
140
Steering と Hook (チームの決まりを守らせる) | 目指せ Kiro マスター 06
inariku
PRO
2
120
AWS Quick 入門 | 目指せ Quick マスター 01
inariku
PRO
2
340
属人化したISMS運用をGitHubとAIで仕組み化した1年間の記録
sioncojp
4
2.5k
Kiro を使うコツ (頼み方、覚えさせ方、任せ方) | 目指せ Kiro マスター 09
inariku
PRO
3
150
Featured
See All Featured
Believing is Seeing
oripsolob
1
280
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
340
Designing for humans not robots
tammielis
254
26k
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
Making the Leap to Tech Lead
cromwellryan
135
10k
Mobile First: as difficult as doing things right
swwweet
225
10k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
330
Designing Powerful Visuals for Engaging Learning
tmiket
1
650
Marketing to machines
jonoalderson
1
6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k