6 ms·
Here is an article about developing the 'perfect' software that runs the shuttle: "They Write the Right Stuff" http://www.fastcompany.com/node/28121/print htt
by tomkinstinch 17y ago
Here is an article about developing the 'perfect' software that runs the shuttle:
"They Write the Right Stuff"
http://www.fastcompany.com/node/28121/print http://www.fastcompany.com/node/28121/print
- aidenn0 17y agoAnd it's 260 engineers to write 420 KLOC. This is why software is buggy; it's to expensive to make it not buggy.
- izend 17y agoAnd it required 380 engineers to build the Burj Dubai. The only difference is for most software projects it is acceptable to have "bugs" as customers will still pay for it, even if it's in a poor state of quality. But "bugs" in a 2,717 ft tower are unacceptable. It comes down to, in general the cost of a bug in most software is relatively low compared to other engineering disciplines. Of course if the software is critical support systems for Astronauts that's a different story.
- kjhgfvgbjnm 17y agoThe Burj Dubai, like any other structure is full of bugs. The point of engineering is to make a system that is resilient to a certain level of faults. That's why the tower doesn't collapse if there is a 0.1 mm crack in one of the bolts.
- Groxx 17y agoIt also depends on how you define a "bug". A car that crumples too much and injures the driver when hit at this angle or that angle within these speeds could be considered a bug. In which case, counting the number of knobs that fall off, plastic that cracks, and parts that wear out prematurely, not to mention discoveries of toxic fumes / paint / etc, cars do have thousands of bugs.
- dkl 17y agoThe door knob example is terrible. How about this: an office that is either too hot or cold? Would that qualify as a bug? I think it does, and it happens all the time in new buildings.
- kjhgfvgbjnm 17y agoThe main problem with software 'engineering' is the fragility of software. In a structure you know there will be cracks, so you choose a material that is ductile enough that a crack can't grow to dangerous size in the lifetime of the component. The problem with software is that generally a single bit wrong is a total failure. I was involved in a case with a turbine blade fracture. The user claimed that there must have been a flaw, and yes the crack must have started at a single atom sized crystal flaw in the meta. But the choice of alloy was such that the crack would have grown at a rate which means it was under the failure size for at least twice the inspection interval - where the customer missed it.
- khafra 17y agoPerhaps the problem with software is that, after the original QA process, there's seldom a regular inspection except adversarially.
- abstractbill 17y agoThe problem with software is that generally a single bit wrong is a total failure. This doesn't mesh with my experience to be honest. I often come across code that contains nasty bugs but is still somehow working accidentally. And even more often, there are bugs that stop just one feature from working while the rest of a large system pretty much acts as if the bug didn't exist.
- nostrademons 17y agoTunnels in Boston or bridges in San Francisco, however...
- wreel 17y ago> But "bugs" in a 2,717 ft tower are unacceptable. People have a tendency to overlook "bugs" in architecture because of the immutability of the medium. But once you start noticing that the HVAC is uneven on your floor, the hot water takes five minutes for ramp up in your office's break room and the conduit runs for networking are bizarre you start to understand that architects and builders run into design and implementation problems as well. In fact they have their own word for patching. Renovations.
- electromagnetic 17y agoHaving worked doing building renovations I can honestly say it's rather frequent that you look at how the building is laid out and how the wiring/water/gas was run and say "what the heck was this person thinking?" - and that's not even including the times I've seen things completely impractical or wholly illegal. In my present house we cannot have the central air turned on in the downstairs toilet if we want heating to the smallest bedroom (the 'infant' room) upstairs. Similarly the basement air vent was so distant from the conduits that the main level essentially has a heated floor (hot air can be felt escaping through almost every gap in the basement ceiling except the air vent it's supposed to come out of. Similarly the plumbing is so unbalanced that the shower can essentially be turned off by a good configuration of tap turns and toilet flushes. Architecture is a joke, and the 'engineers' who design them should really consider building a house themselves, because I've seen every crazy design from doors being hinged to trap people in the corner of a hallway (literally you'd have to step into the far corner to squeeze around the door to exit the bedroom), to lighting layouts that didn't illuminate the room, or switches completely impracticably placed. You're entirely right, people overlook 'bugs' in architecture, although in my experience it's largely because of ignorance of what it being right is. How do you compare a poor plumbing design in your house? Do you run through your best friend's place screwing around with his sinks and toilets while he's in the shower? It's easy to compare two software programs to find a less buggy option, however it's hard to compare two houses to find a less buggy option.
- andr 17y agoLast week all the public parts of the Burj Dubai were closed for maintenance. I guess they did have some bugs.
- rbanffy 17y agoThat's just a bad excuse.
- pmiller2 17y ago>That's just a bad excuse. No, it's good economics. In commercial software development, after a certain point, the marginal benefit of fixing bugs divided by the marginal cost of doing so starts to exceed what the market will bear for consumer software. We literally get what we pay for when it comes to commercial software.
- rbanffy 17y agoI believe we have come a long way from the days when the shuttle computer was cutting edge. In fact, it's a bit of a shame we still haven't got how to make correct software, but it's no way impossible and should be getting cheaper by the day. I think should is the important word here. It's not and we have nobody but ourselves to blame.
- Groxx 17y agoMust be nice to have such clearly defined problems. edit: woah, feature-fail == bug? Why'd it take them until 2007 to not have to reboot whenever they reached a new year? I'd call that a rather significant, costly bug, even if they don't, and it may very well be one of the longest-running in actively-developed software.
- jonknee 17y agoI'd imagine they go by if it's not in the spec it's not a bug. They can't do something not in the spec. It was a known limitation, not a "bug".
- Groxx 17y agoIt was a known limitation, not a "bug". That pretty strongly implies that all known strange-behavior is not a bug. Also, all known bugs are not bugs, as they can be known and worked around. If you had to shut down your computer during the year cross-over, would you consider it a bug? Or what if you couldn't go on your business trip because of the year cross-over. And a bug in the spec is still a bug. Oversights in specifications are equivalent to oversights in programming.
- jonknee 17y agoIf I commissioned a computer to be made that wasn't supposed to be able to span the new year then no I would not consider it a bug that it could not span the new year. Sure it would be great if it would do that (though only if I had asked that it would), but as long as it behaves exactly as expected then I'm happy. No astronauts die and my budget won't cut. Success. A similar parallel in consumer computing is switchable graphics. The first models that supported this required a reboot to accomplish it. That wasn't a bug, just part of the plan. They have since gotten more advanced and allow switching without a restart.
- Groxx 17y agoWhich is why I specifically included the business trip part. They had to schedule around those dates, losing a week or more of possible launch times, because they couldn't handle a year+1 operation. Given how picky they are with launch windows, this could easily mean large delays, meaning large amounts of money. Not a minor feature, methinks.
- robryan 17y agoI think the article skims over a little bit at the end the cost of developing software in this way. For the vast majority of non critical systems there really isn't much value in this methodology.