6 ms·
After reading the introduction, I thought that the author was going to use a story of software failure as an example of why you should write unit tests, or at l
by hnruss 8y ago
After reading the introduction, I thought that the author was going to use a story of software failure as an example of why you should write unit tests, or at least why you shouldn't deploy untested software.
However, the moral of the story was essentially: "software is so complicated that it is bound it break, so you have to be good at fixing it". While that is certainly true, I think that developers have a responsibility to use whatever tools they can to write high-quality software.
- jschwartzi 8y ago> However, the moral of the story was essentially: "software is so complicated that it is bound it break, so you have to be good at fixing it". While that is certainly true, I think that developers have a responsibility to use whatever tools they can to write high-quality software. I actually disagree that we have a responsibility to write high-quality software. As engineers our job is to create software that is good enough for the task at hand and that can be improved later. Sometimes that means that you invest in 100% coverage plus integration and system-level testing because "good enough" means that it has to never fail. Sometimes that means you don't spend much time automating tests and instead do informal development testing before you check something in. It's entirely up to your judgement based on what your code is going to be used for, and I don't think it was inappropriate for OkCupid's engineering staff to avoid testing in this case. After all, their business was really successful through the period where the error happened.
- jhayward 8y ago> As engineers our job is to create software that is good enough for the task at hand This is the essence of engineering. As the saying goes, "Any fool can build a bridge that won't fall down. It takes an engineer to build a bridge that just barely won't fall down." In other words an engineer's contribution is not perfection, it is being able to know the difference between "good enough" and "needs more work" and to apply that knowledge to meet time, cost, and material constraints.
- user5994461 8y agoEvery bridge will fall down, it's just a matter of time.
- pjc50 8y ago> responsibility to write high-quality software Since GDPR, there's now an effective legal minimum of quality; you need to protect user data and keep it accurate.
- deleted 8y ago[deleted]
- twic 8y agoThat moral seems related to a meme floating around that Mean Time To Recovery is more important than Mean Time Between Failures. I think it came from, or through, John Allspaw: https://www.kitchensoap.com/2010/11/07/mttr-mtbf-for-most-types-of-f/ https://www.kitchensoap.com/2010/11/07/mttr-mtbf-for-most-ty... It's popular with a lot of people i know, because it's one of those ideas that's counterintuitive but believable, and so makes you feel really smart for knowing it.