After spending a whole day "user proofing" a new module I realized something: why do I even bother with all the additional work?

Why you might ask?
A little anecdote...

At least twice a month I get a call that someone deleted - by accident- a patient in their practice management software.
Fun thing is, it's hidden behind multiple tabs and buttons - and you literally have to type in "yes, I want to delete this patient".

Asking how this could happen - by accident - yields a "I didn't know this would delete the patient".

And I really wish I was joking...but it happened just last week..again :-D

  • 11
    That's why I stopped caring about fully deleting half the time and rather implement a deleted_at column (if I can't use laravel, else it has that in-built) - even gigantic (my)sql databases rarely get anywhere near a size to worry about deleting rows immediately, so you can just setup a cron to delete records that have been soft-deleted for atleast like 3 months (or less, depending on how much records get added) and keep them only in incremental backups, not in the active data-set.
  • 4
    What @JoshBent said.

    Also: you can't prevent users from doing stupid things without locking them out entirely. So. Do what you can to make dangerous things obvious, and keep backups to minimize the damage from idiots.
  • 5
    Echo @JoshBent.
    Always soft delete via (pick one):
    DeletedAt datetime null
    IsDeleted bit default 0 null

    When the systems are sized, they should be set for three to five years of data, the lifecycle of the hardware + supported stack. Never actually delete anything.
  • 0
  • 1
    Oh, patients can be restored. And there is the equivalent of multiple books explaining what can and can't be done with patient data.
    Deleting something for real is a big no - however, after 10 or 30 years it's supposed to happen automatically.

    But thats's not the issue here.
    I am honestly just amazed by all the things that happen by accident.

    And I don't develop the practice managment software. I develop additional software for it.
Add Comment