Hacker News new | ask | show | jobs
by zoogeny 964 days ago
This reminds me of a colleague I had that would often say "we aren't making air-traffic control systems here". The implication being that no lives were on the line if we made a mistake. This was when I was making games but it also applies to just about every CRUD app I've written.

Tangentially, one thing I often ask other senior technical leaders (especially Director, VP or CTO) is: what is the most costly mistake you have made? If you are a junior engineer, make sure you do it sometime. Many/most high-level leaders in tech can tell stories in the $100k to $1m range. I've seen people lose millions of dollars on a project and get promoted immediately after. It is important to understand why that can happen and why it can even be a good thing.

2 comments

>The implication being that no lives were on the line if we made a mistake. This was when I was making games but it also applies to just about every CRUD app I've written.

I don't agree. Maybe a failure won't result in people dying in a ball of fire, but it can still cause harm. Even minor harm can still add up at scale.

Frustration from a buggy game could lead to real-world road rage or shouting matches. People have killed themselves because a computer sent them a bogus bill. Businesses have failed because software lost valuable data. People have been murdered because of silly social media apps. People have organized pogroms on Twitter. People have been stalked and assaulted using information leaked by Pokemon Go.

Software has real power. If it didn't, there would be no point in writing it.

It is fair to misunderstand what I was saying since all things are ambiguous. Without context I could see this being interpreted as permission for people to be lazy, incautious or even negligent.

But I urge you to consider the other side of the spectrum and the pressures that people can put on themselves. For some, in their search for perfection, they can ruin their own lives. They can see every mistake they make as a personal failure. It is useful to remember that in the vast majority of cases people bounce back from these failures.

You will hear over and over how many entrepreneurs fail in their first businesses, often several times. Most often in life you don't just get a second chance, you get many chances. There a only a few places in life where a single failure is truly catastrophic.

So if you find yourself overwhelmed as a junior engineer, as described in this story. If you feel your stomach in knots and you are terrified your lead in going to eviscerate you in front of a cheering audience - just know you have more latitude to fail and try again than you might expect.

I never thought you said that sloppiness is acceptable. I edited my comment to try to make that clearer.

But I think we should remember that everything matters. People's lives are not mostly made of weddings and funerals and gun fights and plane crashes. They're mostly made of chores and small talk and dumb little mobile games. Nothing is really trivial. You shouldn't beat yourself up over mistakes, but that's not because they don't matter.

Sure, everything matters. But some things matter more than others. If my internet fails for an afternoon that seems to matter less than if my wedding is a catastrophe. If my video game crashes that seems to matter less than a plane crash. We call this "putting things into perspective".

I mentioned the word "humility" in another response and that is the crux of what I'm trying to communicate. It is often the case that we can exaggerate the importance of our own work and it often helps to take a step back and humble oneself. If you find yourself losing sleep over your work, if you find your anxiety levels high, perhaps you need some perspective. Perhaps you find it distasteful for me to suggest that the engineering work of air-traffic control software matters more than most CRUD apps. That doesn't mean every other kind of software has zero worth. It just provides an anchor for perspective - a kind of software where literally thousands of lives are at stake 24 hours per day. Most developers are not under that kind of stress.

> we aren't making air-traffic control systems here

I also find that attitude troubling.

I've worked on software that could loose peoples' cherished data. Now I work on software that could cause flooding if it misbehaves.

Take a bit more pride in your work.

You can definitely take the comment in the worst way possible if you desire.

This was in the early 2000s in the games industry. I'm not sure if you are familiar with that culture, but it was a time when the engineers were working 12+ hour days for months at a time. People were pouring their heart, souls and sanity into shipping software, often working until they literally broke down. I remember one engineer boasting that he had worked for 2 months straight without taking a single day off.

In that environment the stress was high and technical discussions could often escalate into heated arguments. We often had to remind ourselves that we were making games and many people working there were supposedly living their childhood dreams. It was important to remember that.

The idea that we didn't take pride in our work or didn't do everything in our abilities to ship the highest quality software is beyond incorrect. It was that excessive pride that we needed to guard against by checking in to reality. It wasn't a call to laziness, it was a call to humility.