4 ms·
I was reading about NASA's software engineering practices. When they find a bug, they don't just fix the bug, they fix the engineering process that allowed the
by andai 2y ago
I was reading about NASA's software engineering practices.
When they find a bug, they don't just fix the bug, they fix the engineering process that allowed the bug to occur in the first place.
- deleted 2y ago[deleted]
- anotherhue 2y agoMaintenance is never as rewarded as new features, there's probably some MBA logic behind it to do with avoiding commoditisation. It's true in software, it's true in physical infrastructure (read about the sorry state of most dams). Until we root cause that process I don't see much progress coming from this direction, on the plus side CS principles are making their way into compilers. We're a long way from C.
- giantg2 2y ago"Maintenance is never as rewarded as new features," And security work is rewarded even less!
- riknos314 2y ago> And security work is rewarded even less While I do recognize that this is a pervasive problem, it seems counter-intuitive to me based on the tendency of the human brain to be risk averse. It raises an interesting question of "why doesn't the risk of security breaches trigger the emotions associated with risk in those making the decision of how much to invest in security?". Downstream of that is likely "Can we communicate the security risk story in a way that more appropriately triggers the associated risk emotions?"
- giantg2 2y agoThe people making the decision don't have a direct negative impact. Someone's head might role, but that's usually far up the chain where the comp and connections are high enough to not care. The POs making the day to day decisions are under more pressure for new features than they are for security.
- SAI_Peregrinus 2y agoWhat is the consequence for security breaches? Usually some negative press everyone forgets in a week. Maybe a lost sale or two, but that's hard to measure. If you're exceedingly unlucky, an inconsequential fine. At worst paying for two years of credit monitoring for your users. What's the risk? The stock price will be back up by next week.
- amonon 2y agoeasier to consider people to tend towards conservative rather than risk averse. if we were truly risk averse, society would be very different.
- chii 2y agothe easy explanation is that the cost of a breach is externalized, so decision makers gain benefit from savings in not investing in security. Look at the crowdstrike failure as a recent example, but there's plenty more in the past.
- hedvig23 2y agoSpeaking of digging deeper, can you expand on that theory on why focus/man hours spent on maintenance leads to commoditization and why a company wants to avoid that?
- anotherhue 2y agoTop of my head, new things have unbounded potential, existing ones have known potential. We assume the new will be better. I think it's part of the reason stocks almost always dip after positive earnings reports. No matter how positive it's always less than idealised. You might think there's a trick where you can sell maintenance as a new thing but you've just invented the unnecessary rewrite. To answer your question more directly, once something has been achieved it's safe to assume someone else can achieve it also, so the focus turns to the new thing. Why else would we develop hydrogen or neutron bombs when we already had perfectly good fission ones (they got commoditised).
- asdff 2y agoGiven enough iteration with the same incentives, two engineering teams might end up with the same sort of product overall. We see this with airframes. We established the prototypical airframe for the commercial airliner in the 1950s and haven't changed it in 70 years since. This is good for the airline but bad for the aircraft manufacturer. The airline can now choose between boeing or airbus or anyone else for their product. If boeing had some novel plane design that wasn't copied the world over, then the airline company would be beholden to them alone.
- CRConrad 2y agoSounds like automobiles are -- have been, until now -- an even more long-lasting example. The basic recipe has been the same for over a century: Four wheels, two to five doors, steering wheel and other controls at one of the front seats, internal combustion engine. Only now is one of those components, the engine, being changed out. And looking at that from this perspective, it's apparently not as humongous a change as many are now claiming: For one thing, it's just one of the four (or more?) parts of the basic recipe; for another, it's not all that new -- electric motors are in wide use elsewhere, and were one of the alternatives in rather wide use in cars, too, before the industry settled on the current recipe ~a hundred years ago. Anyway, the "beholden to them alone" bit doesn't seem to apply to the automotive industry, since pretty much all manufacturers are in on the switch-to-electrics idea. Which begs the question: Would there really be so much of a customer lock-in in the aeronautic space either? Just like the idea of driving cars by electric motors is unpatentable, what could Boeing (or anyone else) come up with in the basic design of an aeroplane that isn't too general an idea to be protectable, or (most probably) hasn't been tried before?
- xelxebar 2y agoThis is such a powerful frame of mind. Bugs, software architecture, tooling choices, etc. all happen within organizational, social, political, and market machinery. A bug isn't just a technical failure, but a potential issue with the meta-structures in which the software is embedded. Code review is one example of addressing the engineering process, but I also find it very helpful to consider business and political processes as well. Granted, NASA's concerns are very different than that of most companies, but as engineers and consultants, we have leeway to choose where and how to address bugs, beyond just the technical and immediate dev habits. Soft skills matter hard.
- asdff 2y agoIt makes you wonder if there's been work designing software that is resilient to bugs. Maybe you can test this by writing a given function in a variety of different ways, simulate some type of bug (fat fingering is probably easiest), and compare outputs. Some of these functions might not work at all. Some might spit out the wrong result. But then there will probably be a few that are written in such a way to get very close to the true result, and maybe that variance is acceptable for your purposes. Given how we currently write code (in english in a way a human can read it) maybe its not so realistic. But if we get to the point with our generative code where you can generate good quality machine code without having it transmuted to human readable code for human verification, then this is how we would be operating: looking at distributions of results from a billion putative functions.
- toolz 2y agoTo that example though, is NASA really the pinnacle of achievement in their field? Sure, it's not a very competitive field (e.g. compared to something like the restaurant industry) and most of their existence has been about r&d for tech there wasn't really a market for yet, but still spaceX comes along and in a fraction of the time they're landing and reusing rockets making space launches more attainable and significantly cheaper. I'm hoping that example holds up, but I'm not well versed in that area so it may be a terrible counter-example but my overarching point is this: overly engineered code often produces less value than quickly executed code. We're not in the business of making computers do things artfully just for the beauty of the rigor and correctness of our systems. We're doing it to make computers do useful thing for humanity. You may think that spending an extra year perfecting a pace-maker might end up saving lives, but what if more people die in the year before you go to market than would've ended up dying had you launched with something almost perfect, but with potential defects? Time is expensive in so many more ways than just capital spent.
- the_other 2y agoSpaceX came along decades after NASA’s most famous projects. Would SpaceX have been able to do what they did if NASA hadn’t engineered to their standard earlier on? My argument (and I’m just thought experimenting here) is that without NASA’s rigor, their programmes would have failed. Public support, and thus the market for soace projects, would have dried up before SpaceX was able to “do it faster”. (Feel free to shoot this down: I wasn’t there and I havn’t read any deep histories of the conpanies. I’m just brainstorming to explore the problem space)
- euroderf 2y agoSo I wonder if SpaceX has a lending library of all of the relevant (quality-related) NASA documents, printed out on dead trees. For light lunchtime reading.
- sfn42 2y agoThe fallacy here is that you're assuming that doing things right takes more time. Doing things right takes less time in my experience. You spend a little more time up front to figure out the right way to do something, and a lot of the time that investment pays dividends. The alternative is to just choose the quickest fix every time until eventually your code is so riddled with quick fixes that nobody knows how it works and it's impossible to get anything done.
- sendfoods 2y agoWhich blog/post/book was this? Thanks