Today was my first day on the job as a Junior Software Developer and was my first non-internship position after university. Unfortunately i screwed up badly.

I was basically given a document detailing how to setup my local development environment. Which involves run a small script to create my own personal DB instance from some test data. After running the command i was supposed to copy the database url/password/username outputted by the command and configure my dev environment to point to that database. Unfortunately instead of copying the values outputted by the tool, i instead for whatever reason used the values the document had.

Unfortunately apparently those values were actually for the production database (why they are documented in the dev setup guide i have no idea). Then from my understanding that the tests add fake data, and clear existing data between test runs which basically cleared all the data from the production database. Honestly i had no idea what i did and it wasn't about 30 or so minutes after did someone actually figure out/realize what i did.

So, basically, the new person accidentally destroyed the whole database while following the setup instructions she was given. Who is at fault here?

The company blamed the new junior analyst.

While what i had done was sinking in. The CTO told me to leave and never come back. He also informed me that apparently legal would need to get involved due to severity of the data loss. I basically offered and pleaded to let me help in someway to redeem my self and i was told that i "completely [redacted] everything up".

This is exactly the wrong thing to do. On Twitter, John Feminella pretty much summed it up.

The Reddit community was solidly behind the junior analyst, but, unfortunately, this is not the only time managers blame someone junior for a problem they caused. In this case, there's absolutely no reason why someone copying from the instructions should be able to do this much damage. In fact, he shouldn't have been able to destroy any data. And if he did, there should have been multiple backups.

The Reddit community compared this incident to a similar one that happened at Amazon, but Andersonimes pointed out the huge differences:

For all that's wrong with Amazon, the best part was when someone [redacted] up, the team and the company focused only on how we make it never happen again. A human mistake was a collective failure, not an individual one. I really appreciated that in my time there and have learned that it contributes to a condition of effective teams called psychological safety. Google identified it as one of the main differentiating features between effective and ineffective teams in a research study they did internally years ago.

Now, it's possible for a junior person to deserve termination for a mistake they made, but in this situation, the blame lays squarely on the shoulders of the senior team. If you aren't willing to take the consequences of your practices and procedures, you need to change them, not change the junior staff.

I hope this junior programmer gets a new job, where they will appreciate her attention to detail in following the instructions. And I hope the CEO takes care of the CTO in an appropriate manner. Any CTO that doesn't have backups should be kicked to the curb. That's technology 101.

HR should be advocating for the rehiring of this junior analyst and should be issuing an apology regardless. HR doesn't get to make final decisions like this, but they should be pushing for the right people to face consequences--starting with whoever wrote those instructions.

Yes, sometimes you should fire people for mistakes, but make sure you are firing the person responsible.