4 ms·
"Our most important goal in writing software is that it be correct." Because I'm a particular kind of idiot, it took me about 10 years of working in and around
by nathan_compton 5y ago
"Our most important goal in writing software is that it be correct."
Because I'm a particular kind of idiot, it took me about 10 years of working in and around software engineering to understand that this is just not true. In many, many cases the most important goal for software is for it to take up some space in the market (either the external market or the internal corporate reputation market). In order for software to meet this goal, it must more or less function, but it doesn't need to be _correct_. It can crash, make mistakes, lose data, whatever.
In many situations this goal can be understood as "gathering capital." You write software to impress investors or to attract users or to convince other people in the corporate hierarchy that you are a going concern. Thus the valuable part of the software is not its correctness but its _surface_. How shiny is the software? Does it impress and/or please users? Does it impress investors?
If you've read Guy Debord you could have predicted this is how software would work. Software is spectacle.
- liketochill 5y agoI hope that my life or preservation of the environment does not depend on the software you are working on being correct. In fields where that is the case, methods for ensuring correctness are important.
- thewarrior 5y agoIt already does.
- hiptobecubic 5y agoYes but I think we would say that incorrect software in those circumstances "doesn't function." Most software is "usably wrong," which is good enough to build a career on.
- AnimalMuppet 5y agoGood enough because it's good enough (most of the time) for the user to do what they need to do. That's all that's needed. Not perfection. Even more: Perfection takes a lot of time. Perfection therefore means less software reaching the user. So, is the imperfect software more useful to the user than no software at all? In most cases, yes, even with all the problems the software causes. (Because if it were otherwise, wouldn't the users stop using the software?)
- travisjungroth 5y agoYou seem to be largely agreeing with the person you’re replying to. No need to disparage them. TFA made a universal claim. OP replied “not true, here’s where it doesn’t hold.” Bringing up cases where it does hold doesn’t change anything.
- dspillett 5y agoIf we all wrote perfect code we'd be putting our QA departments out of work. Do we want that on our consciences?
- Shikadi 5y agoYou have a QA department? Nice, I'm jealous
- vanusa 5y agoHow shiny is the software? Does it impress and/or please users? Does it impress investors? Yup. And in many cases (2) doesn't matter at all - just heaping portions of (1)+(3). You know the kind of "software" I'm talking about -- the kind that exists (and does all kinds of things) on pitch decks, or in conversations with gullible industry press types. But in no other sense.
- elihu 5y agoI suppose there's a kind of hierarchy: Can I get paid to work on this software? Will customers buy this software? Is this software fit for some purpose? Is the software correct according to what the customer expects? Writing correct software is just a straightforward way of meeting customer expectations, which is a way to ensure that the software is fit for some purpose, which is a way to convince customers to buy the software, which is a way to ensure that you'll continue to be employed working on the software. It's not the only way to get paid, though. (Sometimes software is developed by end users, in which case you can skip over the "will customers buy this?" question.)