I generally agree with the sentiments of this thread - you shouldn't fire people for the kinds of mistakes that all humans frequently make. However, I also think that this was a severe and costly incident - a large number of people thought for a while they were in significant danger, and investigating who is responsible, and making corrections with regards to their employment, may be reasonable depending on the exact circumstances.
I'll give an example. I work in an office building with many floors that have exact same layout. One day I was on a floor that wasn't mine, and went to where my desk should be, and tried to sit down. I was shocked, for a moment, to discover my coworkers had all been replaced by strangers. In this case, I made an absentminded mistake of not paying enough attention to my current location - but the consequences were trivial, so the mistake itself is no big deal. Now, on the other hand, suppose while driving down the road, I absentmindedly ignore a red light, plow through an intersection, and kill a family of five. This is also an absent minded mistake, but the predictable consequences of being absent minded while driving are a lot more extreme than being absent minded while walking about an office building.
To apply the logic of my example to the case at hand - imagine that in one scenario an employee is, during a boring moment, cleaning his keyboard with his chat application open. This results in that employee sending a nonsense message to a coworker. Silly mistake, and no big deal. Now, suppose that same employee has the "Missile Alert" app open and decides to clean their keyboard. This is a similar mistake, but with potentially bigger consequences. I think it's fair to treat these two actions differently.
Of course, the circumstances affect what the reasonable standard of care is. Oopsies by ship captains, surgeons, and even drivers are held to a different standard than me making a typo on some random thing I'm writing or a simple program.
In your example, running a red light is commonly taken as one of those things you just don't screw up on (and that can't be eliminated through automation at this time).
No there aren't. There are certain activities that must be always correct, you implement those by making a reliable system out of unreliable jobs, not by making the people 100% reliable.
We see it all the time in IT - people totally misjudge the 'risk'. 1% risk of breakdown quite often seems acceptable to decision makers until it actually happens. Then all hell breaks loose.
I believe it is much better to fix it (require a second authentication before sending those massages) and search for similar problems within the whole department to make sure something like this never happens again. Make sure everybody, including new hires, are aware of this incident, what the consequences were and that everybody is encouraged to report similar bugs and nobody has to be afraid to be fired when they make a mistake. Otherwise you just create an environment where everybody blames anybody but themselves and the “smallest” guy gets fired for mistakes other’s. This way, things get never fixed probably because everyone ist just afraid of the consequences.
if you direct the blame 1 level further, then it was whoever was responsive for budget/hiring/spec that didn’t ensure that there was a UX designer on the project, but at the same time you can kinda understand why not: the value of UX is frequently not understood, especially when people think “it’s just internal; why make it easy to use if only we see it?”. the answer of course is that you pay for internal systems every day in employee time.
anyway, the point i guess is you can probably trace the “blame” back far enough that it’s too far removed to say it’s anyone’s fault per se, but it proves the point that you need design across the board, and that’s frequently not well understood
From what I understand, we were told the record would never get removed, and we relied upon that. Could our error handling been better? Yes. Could the customer's procedures been better to prevent the record from being deleted? Yes. It was a mistake on both parties.
Who should have gotten fired?
[1] Very scary SLAs with the Oligarchist Phone Company.
[2] It's actually a DNS query. NAPTR records to be precise. Search on that if you are interested.
[3] It was also important because that was the only record we could query and not get charged for it. Everything in the telephony world cross-company (and even cross-department) gets charged. Somebody makes money; somebody pays money.