The paradox is that every device I use interrupts me non-stop with modal dialogs ad nauseam.
But the production delete? You said,"drop", we said, "gone".
Either production database deletes need to adopt alert fatigue or the ops are already so fatigued that it doesn't matter.
Also frankly I think most software does it wrong, if it is possible it shouldn't ask before delete but just allow to undo the step easily. Then work can go fast and uninterrupted while still being resilient to mistakes. Obviously not possible everywhere but where it is it should be the default.
Obviously. When undoing is not easy or possible automatically, there is the "Are you really really sure?" dialog.
Pop-up warnings that are too common are a problem itself. People get so used to accepting them immediately that they stop serving their purpose and just become an annoyance. With one exception: they can prevent misclicks.
https://en.wikipedia.org/wiki/Alarm_fatigue
The misclick point is beyond truth, particularly given the storm of marketing that is mobile web.
Even fatigued, "DELETE 1182900" tends to stick out, if you're used to, and expecting to, see "DELETE 1".
("BEGIN" appears to be PostgreSQLism, "START TRANSACTION" is more standard.)
Open office. Boss rolled over on his chair and started saying "so..." and I dismissed him with a "deleted all users leave me alone". He rolled away, kinda like Homer in that GIF where he disappears into the hedge. Luckily it was back up in minutes, but a new phobia was unlocked.
I think I'm going to start unplugging my desk phone when one of those moments happen to me. "Hey, there's something wrong with..." "YES I KNOW I WAS FIXING IT BEFORE YOU INTERRUPTED ME"
The reason? Well, the admin interface was written in ASP. According to the guy that called me in panic said that ASP version was so very old it was extremely insecure. I didn't have access to the database so could not verify anything but the webserver logs had a lot of "Bobby tables" in them so I have a strong suspicion it wasn't all ASP's fault...
Anyway, we ended up with the database disappearing in the night or containing random data until I got that phonecall asking why we were linking directly to the admin interface :-)
They were very good at restoring the database though, just took an hour or so every morning until they found the reason.
"No worries, we have backups", I thought. Turns out those were more like replication, copying over every change immediately (including deletes).
In the end, fixed with a short script that cross-referenced tables and checked for missing relationships, but terrifying nonetheless.
I consider myself an "experienced" developer, yet on the first day on my current gig I dropped a '--recursive' flag in an AWS command and deleted a bunch of stuff I shouldn't have. ¯\_(ツ)_/¯
A simple --max-really-delete added to a command line is subject to "replay attacks" on yourself when you use CTRL+R.
Never had another incident..
Even though I take all care to differenciate environments, always cross check, we had to live drop a table while on a meeting, and due to ongoing conversation the wrong window was selected, and multitasking ended up causing a major distraction.