Have you perfected the art of flawless first time deployment?


Curiosity’s shadow through the lens’ dust cover. Credit: NASA

Anyone who has built something for public sale has felt both the pain and joy of deployment.

Last night’s Mars Curiosity landing was a deployment that every software team or product developer should be in awe of.

That highly complex, if not seemingly crazy Mars Curiosity landing plan went without a hitch.

The first Curiosity photo returned from Mars showed the rover’s shadow, taken through the dust cover of the lens.

Millions of lines of code. A multi-step time-sensitive deployment where the smallest mistake likely means that we leave a very expensive pile of broken, tangled metal on the surface of Mars.

And yet, it went perfectly.

Thanks to the University of Arizona’s HiRise project, we even have a picture of Curiosity’s chute deployment, despite landing on the side of Mars we couldn’t see from Earth at landing time last night. Simply amazing.

Curiosity hangs below her chute above Mars.
Photo credit: Univ of Arizona HiRise project

Perfect first-time deployment?

Deployment in the field almost always comes with challenges and adjustments.

How can you possibly deploy something perfectly in the field the very first time?

“Simple.” – By not doing it for the very first time in the field.

These things happened perfectly the first time, in part because of redundant systems, but primarily because of testing of all kinds done well before anyone built the device, much less fired it into the sky toward Mars.

NASA does the same kind of testing that we talked about last week re: Intuit’s 10 million lines of code.

Unit testing. Integration testing. System testing. Testing redundant systems. Simulations. Much of it automated so that nothing gets missed and everything possible is tested every single time it or a related component changes.

It’s not “simple”, but it’s what professionals do. Test. Everything. Not just manually, not just once the thing is done and ready to roll out the door. After every build. Automatically. Long before liftoff.

Congrats NASA.

4 thoughts on “Have you perfected the art of flawless first time deployment?”

  1. I’ll tell you what is impressive. A marketing guy who writes a relevant blog post just one day after an event occurs. Most of us have in mind writing relevant blog posts but somehow it is two months before they get finished.

  2. I agree with your suggestions.

    http://management.curiouscatblog.net/2010/05/19/mistake-proofing-deployment-of-software-code/

    I would also say, in most instances, it is even more important to have a system that allows quick adjustment and reaction. Designing systems as though you will deploy it once (unless you are NASA) is a huge mistake. This seems obvious but the poor design of making changes is a huge problem I see (though it is getting much better the last few years). Often the ease of updates is so bad that the biggest problem is how hard it is to adjust.

    1. The interesting thing about Curiosity is that they already have upgrades to its firmware. Much of the next 4 days is dedicated to uploading upgrades they’ve made since the rover was shot into space. Testing that process – and making it so the device isnt bricked from 155 million miles away – is a little dicey, I suspect:)

      Agreed that adjustment/reaction flexibility is huge.

Comments are closed.