What really happened to the software on the Mars Pathfinder spacecraft?
rapitasystems.com
rapitasystems.com
This doesn't really ring true to me. Sounds like the sort of programmers who are inclined to blame "cosmic rays" for odd behavior that they don't understand.
I would think on a mission as expensive as the pathfinder, and knowing that once the hardware is launched you will never have physical access to it again, ANY anomalous behavior would have been tracked down to root causes during testing.
In fairness, they go out of their way to harden they computers against cosmic rays. I am sure that they make a decision about what an acceptable amount of cosmic ray induced error is, and design the system knowing that it will happen. Having said that, I agree that having unexplained problems on the ground should get an explanation before being launched. Even if it was a hardware glitch, they should either have told the hardware people that there was a glitch, or the level of error was within the designed for range and they should not have been suprised when it happened in space.
I remember reading it in a article some time back. Software for this sort of systems isn't written like we do. Come to office, fire up IDE and code. Rather by and large software is first written on paper and the possible side effects and correctness is first verified thoroughly.
I know of a embedded programmer from 80's/90's era. He has done embedded programming both in assembly and C heavily. I recently happen to run into his journals/notes at his home. Turns out even for things as simple as a telephone answering machine or a ECG machine. They would heavily work things out on the paper first. Prove its correctness, once they've got it all figured out then they go out and do it on an editor. I mean it was so well organized on paper, he had all the tests figured out to there most extreme edge cases and he had everything on paper.
I did a small project with him and it was fun to watch him work. It felt like bulk of the work happened on paper first and then on the real tool. There was hardly any room for error, bugs were very minimal. And beyond all, working on paper has its biggest benefit. There is no dangerous distraction called the 'web browser'.
That's probably an overstatement :P
Also, while I was not personally involved in Pathfinder, I was in the research program that led up to it. We were doing things that had never been done before, including the first use of an off-the-shelf commercial operating system on a space vehicle. We were under tremendous time and budget pressure, and so was Pathfinder. The idea that an intermittent system reset could be written off as a hardware problem is entirely plausible.
It may have also been the case in the Pathfinder era that a "Reset" was acceptable behavior.
Also - depending on the nature of the watchdog reset - they may not have been able to capture a core dump - in which case, if there only a few resets - really hard to track down on a tight schedule.
Though correct me if I'm wrong, but I find the article rather biased against iterative/agile way of writing software. Don't get me wrong, I believe there's a time and place for over-2500-pages-of-specs-for-6000-LoC kinda process, but the article seems to be saying that quick iterations are of the stone age/how little children do it and that the way the on-board shuttle group software team wrote their software is the "perfect" way.
I felt it was more "these guys are extreme outliers in terms of software quality, but also extreme outliers in terms of process."
Oh well.