Learning from Bugs

Th4     Start Time : 09:45     End Time : 10:30

Talk Abstract:

Bugs are great learning opportunities. So how do we make sure we learn as much as possible from the bugs we find and fix? One way is to reflect on what made the bug hard to solve, and how we could avoid this type of bug in the future. For the past 15 years I have written down short descriptions of the trickiest bugs I have solved. I have included the symptoms of the bug, the steps I took to find it, the fix, and the most important lessons I learned from it. This simple method has helped me distill patterns that have influenced how I write, test and debug code.

In this talk I will share my experience with this method. I will give examples of tricky bugs I have encountered, and show what the corresponding bug entries look like. I will also present the most important lessons I have learned from going through over 200 such bug entries. The lessons include rules for effective testing, and useful debugging techniques and heuristics.

Key Takeaways:

  1. Present a simple technique to maximize learning from bugs, one that everybody can start using right away
  2. Describe several testing rules and heuristics that have resulted from the bug entries
  3. Detail the most useful debugging techniques I have learned for hard-to-find bugs


Back to Programme

  • Speaker


    Henrik Warne - Software Engineer, TriOptima, Sweden

    Henrik Warne has been programming professionally for 25 years, and he still loves to code. He has worked on small embedded systems and large distributed systems, using a wide variety of technologies and programming languages. He is interested in all aspects of software engineering, from architecture, design and methodology to implementation, testing and debugging. He is currently a software engineer at TriOptima, developing systems for financial risk management.