in reply to Re^3: On moving forward and breaking compatibility
in thread On moving forward and breaking compatibility
Upgrading to a new dependency without testing code with the new dependency is a worse maintenance practice.
Running into trees is bad driving practice, so we put seatbelts and crumple zones and roll cages in cars (or do safety recalls) instead of putting a small sticker inside the glovebox that says "PLEASE DO NOT RUN INTO TREES AS YOU WILL GET HURT", or "CAR WILL ACCELERATE UNCONTROLLABLY IF FLOORMATS ARE LOOSE".
I think it's reasonable and responsible to consider the possibility of, and avoid, potentially dangerous situations, not blame the person in trouble: anti-lock brakes instead of blame-the-driver systems. Designing anti-lock brakes took time and effort, and most of the time they're unnecessary. But if they are, they make a big difference.
So I personally feel like I'm responsible for making this kind of difference when I can. Yes, programmers are supposed to be smart. But they are also sometimes tired, in a hurry, or a little careless - and sometimes, for whatever reason, they're not smart either. I think it's good practice to do a little extra myself so that if something dumb does happen, the damage is minimized, or even prevented.