https://blog.codinghorror.com/falling-into-the-pit-of-success/
a well-designed system makes it easy to do the right things and annoying (but not impossible) to do the wrong things
A straightforward example is, for a programming language, does it silently leak your memory and still look happy? or does it yell at you when you are not doing the right thing?
In the You don't know JS
, the example is that promise can silently stay at an unhandled rejected status which is the “pit of despair” - unless you try really hard to avoid it, you can leave things broken and not inspected.