| ▲ | amarant 4 hours ago | |||||||
I disagree with the initial premise >Quality is the absence of problems A low quality code base can be problem free if surrounding circumstances are forgiving enough. Conversely, a high quality codebase can have a lot of problems in difficult circumstances. I haven't thought about it long enough to have a definition of quality that I'm really happy with, but I think a "resilience to hardships" would be a better definition of quality. Hardships can come in many forms, and often you're prepared for some of them but not all. Occasionally you'll be prepared for hardships that never occur. There is something to be said for being resilient against the correct kinds of hardships, which is why I'm not entirely pleased with my definition either. But absence of problems is not it. That might be entirely circumstantial and is therefore orthogonal to quality. | ||||||||
| ▲ | quietkoala 4 hours ago | parent | next [-] | |||||||
I think you're circling the definition I most closely align with which was coined by Gerald Weinberg - "Quality is value to some person". You can have the best looking interface and the cleanest codebase, but if nobody is getting value from your software, who cares? If somebody is getting a ton of value from your software they're more forgiving of defects they run into. There isn't some intrinsic value to software, it's gotta be used by somebody | ||||||||
| ||||||||
| ▲ | jerf 4 hours ago | parent | prev | next [-] | |||||||
I think part of what you're reaching for is the concept of anti-fragility: https://en.wikipedia.org/wiki/Antifragility Properly speaking, that would be a characteristic of the entire production process, including the people, rather than a property of the code itself. (At least for now. Stay tuned with AI for further updates.) Still, you'll see it in the code. | ||||||||
| ||||||||
| ▲ | chasd00 4 hours ago | parent | prev | next [-] | |||||||
> But absence of problems is not it. i disagree, think about what defines a problem. Not being maintenable, readable, performant etc could be problems or may not be depending on the software requirments. > Occasionally you'll be prepared for hardships that never occur. this over-engineering and just as bad as failing to meet a requirement, you're wasting resources that could be spent on something else. In fact, meeting the requirements and only the requirements is requirement #1 ;) | ||||||||
| ||||||||
| ▲ | MaxBarraclough 4 hours ago | parent | prev [-] | |||||||
> I think a "resilience to hardships" would be a better definition of quality Does this refer only to program behaviour? I figure readability should count toward quality, but it doesn't directly affect program behaviour. | ||||||||
| ||||||||