Auditory Console Logging: Identifying Bugs by Listening to Code Execution
If code was a musical score, how would it sound when played? Would it be possible to identify patterns and even problems by listening to it?
This was the idea behind a random side project. The mission: improve situational awareness of program execution by involving another sense: hearing. Ideally, use this to identify bugs or other issues we’d otherwise miss.
We built a runtime flag to add “audio logging” to our product. Specifically, it makes our client datastore play musical notes during transactions. Each operation, such as a load or an update, gets assigned a unique musical note. Then, the client plays that musical note during the duration of that operation. Sometimes, multiple operations are being processed simultaneously, resulting in interesting chords.
Jira sounds like fireworks
If you want to try this yourself, there’s a URL below to enable it. The page will remember this setting until it is reloaded or navigated. If you’re new to Visor, this link will also let you create a free account to try it.
Note that browsers require some interaction with the page before any audio can play, so you may miss out on the the initial load of a given page.
Here’s what an import from Jira sounds like. (It reminds me of fireworks)
And here’s the cacophony of creating a brand new workbook:
Discoveries while building
One of the discoveries we’ve made via this is that an extra, unnecessary search runs in the comment composer. When a user finishes a search for a user to mention, the field goes empty and another search runs. Hearing this allowed us to track this down and realize the issue.
Notice the second tone after the mention is completed. The system is running an extra, unnecessary search for an empty query.
We’ll be continuing to explore how else we can use sound to improve our understanding of the product. What are some ideas you have for how sound could improve your building and debugging experience?