Wobbles in the Spectrum
Using Doppler Spectroscopy to Find Software Bugs

John Reeve | February 14th, 2013 | , , , ,

Wobbles in the Spectrum Using Doppler Spectroscopy to Find Software Bugs

Web developers are known to come up with jargon to describe different software programming situations. One of our favorites is the term Bugfoot, the mysterious bug discovered by one person that no one else can reproduce. Creative classification of all things programming is fun, but it also helps the team communicate with one another in a common vernacular.

Inevitably, we come up with jargon that is only meaningful to our development team, but is very descriptive and direct. The Intervals development team has coined some jargon of our own. One term that has stuck is “Wobbles in the Spectrum.” Before I explain what this means, I’ll need to share some background on where this term comes from.

Doppler Spectroscopy and the Discovery of Distant Planets

Doppler Spectroscopy, the Radial Velocity Method

This photograph was produced by European Southern Observatory (ESO).

Astronomers have been using a technique called Doppler Spectroscopy to deduce the location of planets, or what they call exoplanet candidates, since 1993. Because telescopes are not powerful enough to see distant planets, astronomers came up with a way to deduce the location of distant planets.

The theory is that planets orbiting a star will cause the star to experience changes in position and velocity as they both orbit a common center of mass. These changes produce small fluctuations in the light travelling from the star to earth. Astronomers are able to observe wavelength changes in the spectrum of light emitted by the star, using this information to deduce the presence of a planet orbiting the star.

When Software Experiences Wobbles in the Spectrum

Wobbles in the Spectrum are like Bugfoot’s footprints. Some of us have seen muddied remnants of them, but we can’t determine if they are real or not. Software bugs will sometimes leave footprints, without revealing their location, or much less, whether or not they are actually real.

When we encounter such a bug we call it a wobble in the spectrum. The software development team has noticed something, a small shift in the usual day-to-day spectrum of the application’s expected behavior. The app chewed up too much RAM without explanation. The job queue got stuck. A few users experienced white screens when trying to use your app.

When we experience wobbles in the spectrum, we have to decide if these nuances are being created by an actual bug, or if its an “artifact of stellar activity.” In other words, these wobbles have to be watched closely so we can conclude whether it’s a legitimate bug or just a fluke.

Finding Bugs Using Doppler Spectroscopy

The methods used by astronomers to detect planets can be analogous to detecting bugs in software development. When we can’t pinpoint the exact location of a bug we identify the areas of the application that it is affecting.

No portion of a web-based app is completely isolated. If there is a bug in one area, it will have an effect on other areas. By looking at the affected areas of the application we can deduce where the bug is located. And if we can figure out where the bug is located, we can fix it.

I’ll use an example using our own application, Intervals. Several years ago we noticed our app was having minor performance issues each Sunday afternoon. We wanted to get it fixed before it became disruptive. We dug through log files, looked at usage graphs, and brainstormed with the development team. We could not figure it out.

The culprit turned out to be a job queue that reviews current timesheets and determines whether or not to mark them as overdue. It was using database transactions improperly, but didn’t become problematic until it was Monday in time zones east of GMT.

We changed one line of code and the problem was resolved. It took one minute to fix a bug that had required several hours to deduce.

It took astronomers some 40 years to go from the theory of Doppler Spectroscopy to developing the instruments accurate enough to measure a star’s light spectrum with the precision necessary to detect distant planets. One day we may have web development tools powerful enough to find the most remote, outlandish bugs. Until then, we’ll have to keep working with our finely honed skills in deduction and intuition.

Photo credit: j-dub1980

Leave a Reply

Intervals Blog

A collection of useful tips, tales and opinions based on decades of collective experience designing and developing web sites and web-based applications.

What is Intervals?

Intervals is online time, task and project management software built by and for web designers, developers and creatives.
Learn more…

John Reeve
Author Profile
John Reeve

John is a co-founder, web designer and developer at Pelago. His blog posts are inspired by everyday encounters with designers, developers, creatives and small businesses in general. John is an avid reader and road cyclist.
» More about John
» Read posts by John

Jennifer Payne
Author Profile
Jennifer Payne

Jennifer is the Director of Quality and Efficiency at Pelago. Her blog posts are based largely on her experience working with teams to improve harmony and productivity. Jennifer is a cat person.
» More about Jennifer
» Read posts by Jennifer

Michael Payne
Author Profile
Michael Payne

Michael is a co-founder and product architect at Pelago. His contributions stem from experiences managing the development process behind web sites and web-based applications such as Intervals. Michael drives a 1990 Volkswagen Carat with a rebuilt 2.4 liter engine from GoWesty.
» More about Michael
» Read posts by Michael

Videos, tips & tricks