Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm sorry. You're asking me to... enumerate every single problem in software engineering? I don't see the point. How about we take one of the most impressive, extreme cases of software ingenuity: launching the Space Shuttle.

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

"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."

Do you think that perfection, that stability, in the face of lives at risk for every mistake, is a suitable place to suggest that taking LSD could make them better? These are the best programmers in the world, by many standards. And they're not writing node.js servers and map-reduce queries, they're using billions of dollars of hardware to achieve manned space flight. And they don't take LSD.

"It's strictly an 8-to-5 kind of place -- there are late nights, but they're the exception. The programmers are intense, but low-key. Many of them have put in years of work either for IBM (which owned the shuttle group until 1994), or directly on the shuttle software. They're adults, with spouses and kids and lives beyond their remarkable software program.

That's the culture: the on-board shuttle group produces grown-up software, and the way they do it is by being grown-ups. It may not be sexy, it may not be a coding ego-trip -- but it is the future of software. When you're ready to take the next step -- when you have to write perfect software instead of software that's just good enough -- then it's time to grow up."



"And they don't take LSD."

Says who? The article says 260 people worked on that part of the code. I'm sure they're all security-cleared and background-checked up the wazoo, but i'd wager that more than a handful of those 260 have had psychedelic experiences at some point.


The shuttle is an excellent example of many things, but not necessarily of a conceptually difficult task. It's hard, but it's not mind-bending. The hardest part comes from having to prove the systems correct because lives depend on it.


"Mind-bending" is a bit of a weasel word. What is the difference between "hard" and "mind-bending"?

Do you have any experience of the challenges of spaceflight software to demonstrate that all problems are of "sub-mind-bending" difficulty?


Hm, fair enough. It just seems to me that it's a lot of number juggling and physics calculation.


While I am not an expert on the shuttle flight software, these are some challenges in flight software in general: Consider the problem of orbital insertion around a moon of saturn, or around an inner planet, or an asteroid. Not only does the guidance and control subsystem have to react (i.e., actuate the thrusters whose thrust can vary by orders of magnitude) within a razor-thin margin, but each scientific instrument has requirements as well, and introduces its own perturbations (e.g., extension of an antenna boom causing vibrations). Plenty of PhDs, and PhD topics to be found in this and associated problems. ANother example, consider space network links. You can't just use TCP (it's been tried, and it simply breaks down), you need to engineer a protocol -- in fact a whole new suite of protocols -- from the ground up that provides the same reliability but over much faultier links. Although TCP is simple in concept (just ACK/NACK till you got everything, right?), 30 years of its evolution shows that it is anything but. Both of these problems necessarily involve some bending of the mind to solve, and I image there are related ones for the folks in the manned-space sector

EDIT: and among other things that I'd consider important to mention, there are significant robotics challenges, autonomous behavior and decision making (with associated problems in formal model verification), along with the general high degree of fault tolerance required in just about every software (and hardware) subsystem. I think many of the hardest problems in CS can be found in the spaceflight domain.


If you read the article, it is about scientist/people who state lsd helped them with their ideas. Not in working.


You're right - there's no point trying to 'find the right approach' when it comes to space flight. But not every piece of software has to get every little detail right. When the issue is more about figuring out what you're trying to accomplish with software than accomplishing something perfectly, creativity is very important.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: