Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
http://www.rubyconf.org.au Catching software bugs is a mysterious magic, unknowable by science, and untouchable by process. Debugging skills are instinctual and come only from years of experience. False! Programming bugs, like real bugs, can be organized into a deterministic taxonomy. At its base, consistent and successful debugging is pattern matching. Classifying bugs by their attributes and behaviors makes the seemingly impossible possible—codifying the elusive “programmer’s instincts” into a logical debugging process.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In her talk at RubyConf AU 2017, Kylie Stradley presents 'A Common Taxonomy of Bugs and How to Catch Them', challenging the common belief that debugging skills are instinctual and mysterious. Instead, she argues that bugs, much like real-world organisms, can be classified and understood through a systematic taxonomy based on observable attributes and behaviors. Key points discussed include: - **Importance of Debugging**: Debugging is a critical skill in a developer's toolkit, and seasoned debuggers are often seen as possessing almost magical instincts. - **Instincts vs. Processes**: Stradley refutes the notion of debugging as merely relying on instincts, encouraging developers to create internalized rule sets based on observable bug patterns instead. - **Categorization of Bugs**: Bugs can be categorized into two major groups: - **Upsettingly Observable Bugs**: These are easy to see and reproduce, like 'bore bugs', characterized by deterministic behavior, making them straightforward to debug. - **Wildly Chaotic Bugs**: These are elusive, difficult to reproduce, and include 'Heisenbugs' (which disappear under observation) and 'Mandel bugs' (which appear to be widespread issues not necessarily linked to coding errors). - **Examples of Bugs**: Stradley uses relatable examples like 'bore bugs' that can be identified by consistent output, and 'Schrödinger bugs', where the validity of the code becomes apparent only upon closer inspection. - **Resolution Steps**: For each type of bug, she offers structured steps for reproduction and resolution, such as using logging and profiling data to identify and squash these issues. - **Creating a Debugging Toolkit**: She emphasizes the importance of building a personal debugging toolkit that can adapt to various applications and systems. The conclusion of the talk encourages developers to focus on observable attributes of bugs rather than accepting debugging as an instinctual endeavor. By classifying bugs systematically and using established techniques, developers can enhance their debugging processes significantly. Stradley invites attendees to develop their own toolkits and share their learning to foster collaborative improvement in debugging practices.
Suggest modifications
Cancel