NASA and Software Engineering
Wednesday, November 10, 2004
In 1997, it was a very good year (Try this sentence to Sinatra's
It was a very good year). It was a good decade for Software Engineers, Software Development in general and the Internet (Al Gore invented it in that decade). It was the go-go 90s and venture money was handed out at 7-11 stores - It wasn't quite like that, but, by the way we talk about it now, it sure sounds like it.
Anyway, during that year, Fast Company was a hip on-line and glossy paper magazine (They used to throw great "roof top" parties - Toronto's club London, anyone?). One article that has stuck with me since then is called
They Write the Right Stuff. It's a nice write up and portrayal of NASA's Software Engineers to be a regular bunch of folk with regular 9-5 schedules. Yet, they manage to deliver reliable software and with minimal number of bugs. How do they do it? If you read the article, you'll come with the following thesis: Requirements Engineering and Detail Design documentation. These documents are probably more complete than anything we've (non-NASA Engineers) ever laid hands on. And it's past, because, who knows what the future will bring.
Two things to note:
1. NASA software is nothing like Business software.
2. NASA software doesn't have the requirements to generate profit.
I guess what I'm trying to excuse, is that, writing software to generate profit leads to small side effects: it must be written quickly, cheaply, and it must be sold at a profit.
The main question in my mind is: Can (for profits) businesses (Or software shops) adopt a NASA like engineering process and stay profitable in the long run? I wonder...
Comments:
I used to work at Kennedy Space Center. There was an article in one of the computer magazines about our "state-of-the-art" ethernet network back in the late 90's. It was a running joke because our backbone was a single 10mbit cable at the time. Don't believe everything you read. NASA does a lot of business software and like 80% are failures. They get completed but their intended customers don't use the software. Instead they just go buy something from a vendor
You are correct, NASA isn't in the business of making money, they are in the business of spending it. If you don't spend all your budget, you get less the next year. Their requirements engineering sucked because they would try to do all things for all people. That is why most projects fail in my experience: over-engineering.
:)
I guess repeating the old cliche of "the pasture looks greener on the other side" is in order.
I agree with you, I don't believe everything I read, you are also right to point to the failure rate. We, the public, or outsiders of any corporation are more likely to hear of the products or project that have succeded rather than the one that have failed.
I guess the reality of making business (any type of business) is very different from idealistic and romantic views we have of every profession.
In the end, it's about money: making it, or spending it.