Improving Sense of Smell Low-Level Debugging

By Matthew Dodkins

We often use the metaphor of smell to describe issues with code which haven’t necessarily manifested, but could end up causing serious problems (“code smells”).

Architectural and habitability smells can help guide us during low-level debugging. The goal of this session is to give participants the tools they need to help refine their own and others’ sense of code smell further.

Parallels will be drawn between techniques for refining actual sense of smell and improving debugging techniques.

First 40 minutes - theoretical overview

  • The difficulties of low-level, real-time debugging, including different types of trace and their advantages and disadvantages

  • Testing - where it works, where it’s hard, and where it’s impossible

  • Habitability and how it relates to bugs

  • Overview of lots of different “code smells", all with real world, embedded examples

Next 40 minutes - mob programming practical

Fun, real-world problem with a custom threading implementation. There will be no libraries involved here - a complete (albeit small) scheduler / RTOS will be provided that isn’t quite working correctly.

The group will be split into “mob teams” of 4-5 people and set up next to a large monitor each (which I will provide) so they can "mob program” together in order to solve the problem. Mob programming is a relatively new Agile technique which we regularly use to solve difficult problems. Each person in the team takes in turns to “drive” at the keyboard.

There will be prizes for the winning team.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.