java.lang.OutOfMemoryError: GC overhead limit exceeded

The Software that Never Crashes

1. December 2008 16:23 by Scott in   //  Tags: , , ,   //   Comments (9)

There are many untold stories in the world today.  From saving lives to sacrificing your self for the greater good.  Stories are past down from generation to generation and I want to make sure there is another story that is told to every programmer in the world.  It is the story of those who write perfect code. An interview in Dec. 2007 was done by Charles Fishman about the programmers who code for the space shuttle.  The men and women that put their code to the test.  It either works and people live, or it fails and people die.  There is only a good and a bad scenario.  If you are space shuttle programmer, you are a perfect coder.  I don't want to bore you with the forward, I would just rather get to the meat of the article. So here it is in all of its glory.

http://www.fastcompany.com/magazine/06/writestuff.html

After reading the article, I hope you realize the amount of inspiration that could be taken from this as a programmer. The quote that sums it all up for me is:

"But how much work the software does is not what makes it remarkable. What makes it remarkable is how well the software works. This software never crashes. It never needs to be re-booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. Consider these stats: the last three versions of the program -- each 420,000 lines long-had just one error each. The last 11 versions of this software had a total of 17 errors. Commercial programs of equivalent complexity would have 5,000 errors."

That quote right there sums up coding in a basket.

  • Write better code.
  • Write cleaner code.
  • Write as if you had to save a life  - Its amazing what someone would do to know that their code could end up costing lives.
  • Learn something from this article and bring it back to your company.
  • In the end, its the process by which they executed that makes their code perfect.  Learn to make great code, plan and think about great code.
  • The average programmer today thinks 80% of the time and actually codes only 20% of the time.  This thinking is what makes the programmer better at writing clear and concise code.

This story should be placed in a book for all to see and remember.  Its an inspiring piece about the perfect programmers.

Now the question remains: Have you ever created something flawless?

kick it on DotNetKicks.com

If you liked this post, please be sure to subscribe to my RSS Feed.

Comments (9) -

zob
zob
12/2/2008 11:10:31 AM #

That reminds me of http://en.wikipedia.org/wiki/Ariane_5_Flight_501

scott
scott
12/2/2008 11:18:13 AM #

Thats freaking crazy.  Thanks for pointing that article out.

Arch4ngel
Arch4ngel
12/2/2008 12:08:16 PM #

I remember my first Hello World program. The most flawless piece of software I ever wrote. After that... well... business programming. Which means requirements change faster than the code and everything is considered a "bug" or a "Change Request".

We have to accept bugs at some points. Of course, no "crash" bug but still bugs.

Great article. Smile

Scott
Scott
12/2/2008 12:12:54 PM #

@Arch4ngel

The hello world program could very well be the most flawless program one ever writes.  You sure did hit on the nail when you said requirements change faster than code and everything is considered a bug or change request.

Romeo
Romeo
12/2/2008 12:23:01 PM #

This type of problem doesn't come around much to most programmers. And if it does, the said problem requires a programmer on the top of his game. The programmer must also accept bugs and treat as something valuable like "the more bugs fixed the higher chance of saving someone's life".

Mike
Mike
12/2/2008 1:46:31 PM #

They don't "write perfect code," the entire concept of writing perfect code is nonsense. What they do is have a high ceremony software development process that values software testing.

They are the only the only organization known to be ranked a Level 5 Capability Maturity Model.

IMO 4 is sufficient for 99% of software organizations, and even 3 is enough for most businesses.

@scott, cheers ( :

Goofy McJr
Goofy McJr
12/2/2008 1:58:46 PM #

If they're so perfect how come Space Shuttles keep blowing up?

J
J
12/2/2008 3:17:14 PM #

No Mike, their process values *planning*.  The article states their process focuses on the front end, not the back end.

And, what they have is an environment where nobody tells them, "we need this yesterday else the company will go under and the stockholders will be pissed because they aint makin no $$$ and oh by the way the business requirements have changed 37 times since last week's status meeting, I posted it on my personal wiki page, didn't you see it?....."

Thus, the focus on keeping people alive and expensive equipment in good working order allows them to create a process that focuses on planning. And yes, IMO with a good plan, one *can* write perfect code.

However, there is absolutely no way such a process could work in a business environment.  The business world demands imperfection in order to achieve profit. Because you can't make a profit if the other guy got there first. Whether or not 3 or 4 is "good enough" isn't the question. Of course they aren't good enough. The question is, how much profit do you want to make this quarter, and how big do you want your quarterly bonus check to be?




scott
scott
12/2/2008 3:34:23 PM #

@J

Good comment J.  I agree with you on that a lot. Planning definitely takes away from profit it self.  Lucky for us, Nasa isn't looking to make a profit, but make something that will succeed without failure.