3 ms·
I'd agree with that, to the extent that understanding how badly your tools can hurt you is an important thing to learn. Consider how a surgeon would respond if
by zh3 3y ago
I'd agree with that, to the extent that understanding how badly your tools can hurt you is an important thing to learn.
Consider how a surgeon would respond if told not to use a scalpel because of the risk of accidental injury when using a sharp tool.
We learn from our mistakes - to which I'd add, sometimes we can afford to make mistakes (home programs) and other times we can't (safety-critical code).
- ilyt 3y agoSurgeon would absolutely use a tool that tells them when they're about to make something that's 99% of the time a mistake.
- ecshafer 3y agoI think a more accurate analogy would be some kind of scalpel that would not let the surgeon cut deeper than they needed. So if they needed a 1 cm incision, it would somehow stop the blade form going in 1.1 cm. In that case, some experienced surgeon may say "But I know how to make a 1cm incision!", but I think that the reality is that preventing a mistake from happening is valuable. You see the same arguments against static analysis, unit tests, strong type systems, etc. The evidence seems to favor systems which prevent errors over artisinal expertise.
- Kamq 3y agoI think an even more accurate analogy would be if a surgeon had some kind of scalpel with a 1 cm limit, but if a surgery suddenly changes in the middle, and suddenly requires a deeper incision, the surgeon has to spend a non-zero amount of time re-configuring the scalpel. This casts flexibility vs safety as a tradeoff, which it is.
- SilasX 3y agoOh, one more refinement: Surgeons are constantly killing people[1], and every time, it turns out it was because the surgeon disabled a known, recommended safety rail, and whenever anyone points out that they should stop disabling the safety rails, they insist that they know how to operate without them, it's those other people that don't. Plus it's sooooo inconvenient for an operation[2] to take five more minutes, they're too good to have to deal with that. [1] introducing security vulnerabilities [2] code changeset submission
- dekhn 3y agoThe one thing I remember from watching my wife's surgery is that they counted the surgical sponges going in, and counted them coming back out. Because sometimes surgeons would forget and leave a sponge inside and then the person woudl get a really bad infection. Honestly, checklists and procedure matter more than most people want to admit.
- sargstuff 3y agoWas LD_LOAD and related LC stuff (algebra & unix) the 19th c rabbit hole for [1] & [2] ? 1] introducing security vulnerabilities [2] code changeset submission
- steveklabnik 3y agohttps://www.sawstop.com https://www.sawstop.com This is my favorite one
- pjmlp 3y agoThat surgeon has undergone several years training, had to go through an exam to be allowed to practice, and is submited to yearly evaluations if they are still allowed to touch that scapel. I would agree the same for developers, if similar practices would be enforced everywhere instead of having people calling themselves enginners just because they like how the word sounds.
- kortilla 3y agoYet surgeons killed people all of the time and had to be forced to use checklists because it turns out credentialism doesn’t prevent mistakes.
- pjmlp 3y agoWhich is also something that we need to add as well, on top of credentialism. More quality and process validation, less cowboy programming.
- kortilla 3y agoAnd skip the credentialism, because that’s generally bullshit.
- pjmlp 3y agoNot at all, that is a guarantee that people actually know how to hold the scapel and can enter the operating room safely. A brick layer doesn't turn into a Construction Engineer, only because they think they know everything about building houses, and have somehow built their own during long weekends. Likewise a coder out of a bootcamp, isn't someone versed in what actually entails to be a Software Engineer, regarless how cool the title might sound like.
- kortilla 3y agoNo, it’s not a guarantee, it’s just a noisy filter with a very high false negative rate and a high enough false positive rate (as visible in malpractice insurance).