I want software to be:
Robust => designed to accomodate all known edge cases
Reliable => operable for an extended period of time under expected conditions without failures
Stable => does not change in incompatible or unexpected ways over time; "if it works today it can be expected to work tomorrow"
Simple => including only as many moving parts as is required to meet the other three goals
@sir Want to play a game? Select 3.
@lynne nah, I'll have all 4, cheers
@sir what do you call "fail gracefully in unforeseen edge cases" then?
@wolf480pl if they're not foreseen they cannot be planned for
@sir i guess it depends on whether "I don't think it's possible for this thing to $become_bad, but even if it does, we have $defense_in_depth"
Defense in deph.
sircmpwn's 4 rules of software engineering
* fuck google
* fuck laptops
* install Plan 9
* use IRC, bitches
@sir merge robust/reliable to make this the RSS rule pls.
@hyphen features and edge cases are not the same thing. What I mean when I say this is that it accounts for all edge cases within the constraints it's defined to support; for example, handling rather than ignoring errors, predicting and gracefully dealing with unexpected inputs, etc.
@hyphen I don't have that kind of relationship with my clients. I would push back and fix their non-standard inputs
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!