I guess that I'm saying that eventually code, reused and added to in even the most careful way, becomes more apt to failure than a rewrite would be. The original citing here was the example of the code written for the space shuttle, and how it has been reused through the years, even in the face of what has to be changing requirements. Yes, it works, and perhaps in man-rated tasks where safety is first, that's supremely important, but most computer programs aren't man-rated. Overstressing conservatism is not always the best way.
In 1976 this wasn't a possibility, even for the likes of NASA. Or rather, I should say, for purposes of keeping a complete record, it was not a possibility.
Now, let me tell you the flip side of that story.
I was working on the Viking Mars Lander program long ago (1976). The code for the lander programs was frozen a year before launch (which itself was a year before landing). Some dozen "books" of the assembly code were created and archived for use when the landers finally landed.
All went well for about 6 months after landing. Updates were made and duly entered into the master asssembly listings. After six months of this, the listings were so xed out, and all the margin space used with notes, that errors started creeping in. Finally an uploaded patch wrote over part of the antenna pointing table, and the lander was lost, but for a fortuitious accident which allowed the table to be re-established (with much howling and gnashing of teeth).
Sometimes new is better, even if it is painful.
I guess that I'm saying that eventually code, reused and added to in even the most careful way, becomes more apt to failure than a rewrite would be. The original citing here was the example of the code written for the space shuttle, and how it has been reused through the years, even in the face of what has to be changing requirements. Yes, it works, and perhaps in man-rated tasks where safety is first, that's supremely important, but most computer programs aren't man-rated. Overstressing conservatism is not always the best way.
In 1976 this wasn't a possibility, even for the likes of NASA. Or rather, I should say, for purposes of keeping a complete record, it was not a possibility.
Now, let me tell you the flip side of that story. I was working on the Viking Mars Lander program long ago (1976). The code for the lander programs was frozen a year before launch (which itself was a year before landing). Some dozen "books" of the assembly code were created and archived for use when the landers finally landed. All went well for about 6 months after landing. Updates were made and duly entered into the master asssembly listings. After six months of this, the listings were so xed out, and all the margin space used with notes, that errors started creeping in. Finally an uploaded patch wrote over part of the antenna pointing table, and the lander was lost, but for a fortuitious accident which allowed the table to be re-established (with much howling and gnashing of teeth). Sometimes new is better, even if it is painful.