Navigation

A tale of two spacecraft

A 4 minute read written by cole March 12, 2014

Share this post on

I spend a lot of my time at Yellow Pencil focusing on improving our software development and engineering practices. Sometimes that means facilitating source code inspections, automating manual processes, mentoring other technical staff, or a zillion other tasks. This often involves testing my colleagues’ patience when I get pedantic about doing things the right way for no other reason than the intrinsic long-term value of doing so. To clarify my perspective on software quality issues, I’d like to tell you a story that discusses a couple of interesting projects from another field while highlighting some of the dilemmas we face here at Yellow Pencil.

A Team That Experienced Amazing Success

In September 1977, NASA launched a space probe called Voyager 1, on a planned three year mission to study Jupiter, Saturn, and their moons. The launch was successful, and by the end of the year Voyager 1 was en route to the outer solar system. In January 1979, the probe arrived near Jupiter and began sending photographs and measurements of the gas giant back to Earth. The following year, the Voyager team also completed their study of Saturn, and by December 1980 the mission was declared a success. Hooray! Success! Everyone loves achieving planned objectives.

After a short celebration, the Voyager team realized that the spacecraft was still fully functioning. They realized it would be a waste to just abandon it as it drifted toward the edges of the solar system. So they decided to extend the mission for as long as they could procure funding.

"A family portrait of our solar system"

Ten years later, Voyager 1 captured the famous “family portrait of the solar system” (above), including Carl Sagan’s “Pale Blue Dot” photo. Not only was the Voyager 1 collecting groundbreaking scientific measurements, the probe had now collected a cultural artifact of undeniable beauty and significance; one that captures a unique and irreproducible perspective on the fragility of human existence.

"Look closely: see that dot on the right? That's us."

Voyager 1 continued on its odyssey, overtaking Pioneer 10 in 1998 to become the furthest man-made object from Earth. But now we take a short detour, as there was another interesting NASA mission that year.

A Somewhat Less Successful Team

The Mars Climate Orbiter (MCO) was launched in September 1998 on a mission to explore Mars’ atmosphere. Unfortunately the trajectory was – shall we say – wonky, and upon arrival, MCO crashed into the planet, burning up in the very atmosphere it was sent to study. A post-mortem investigation determined the cause of failure:

“...One piece of ground software produced results in an Imperial unit, while a second system that used those results expected them to be in metric units.”

Oops.

How Did Voyager 1 End?

Meanwhile, back at the NASA Jet Propulsion Laboratory, the Voyager Team continued to rack up amazing successes. In 2007, the probe encountered its first sub-system failure – thirty years into a planned three-year mission! As of 2014 (the time of writing) Voyager 1 is still sending back measurements to Earth. Current estimates suggest it should continue to do so until about 2025, which would extend the total mission to about 48 years. Since Voyager 1 has crossed the boundary of our solar system into interstellar space, humans are now officially exploring the galaxy. This is starting to sound like something out of a Star Trek episode, n’est-ce pas?

What on Earth happened?

So let’s see: two space exploration missions around the same time. One wildly successful, the other an embarrassing failure. What on Earth happened? Let’s compare.

Voyager 1

Mars Climate Orbiter

Built in-house by NASA at the Jet Propulsion Lab

Built under contract by Lockheed

Strong engineering culture

Chaotic team (concerns about the trajectory were ignored until it was too late)

Focus on quality (scientific team)

Focus on profit (private company)

Wildly successful (planned primary mission objectives were a small fraction of overall achievements)

Catastrophic failure

Repeated similar results with Voyager 2

Mission cancelled; team disbanded

Arguably the most successful engineering project of all time

Arguably one of the most embarrassing engineering mistakes of all time

For anyone that’s worked on software development projects, some of the items in the right column might sound troublingly familiar. And who’s to say that our stakes aren’t just as high? At the end of the day, our customers’ businesses (and livelihoods) rest in our hands when we deliver a software project. We should treat that with the same amount of gravity (pardon the pun, MCO) as would a NASA team trying to complete their mission.

And that, dear reader, is why I’m willing to be a mother hen when required; nagging and nitpicking our team about software quality and engineering issues. I know exactly which team I want Yellow Pencil to be.