Hacker News new | ask | show | jobs
by HtmlProgrammer 1034 days ago
Is this not just the general approach to system design? When I’m writing software, my first thought is list everything that could go wrong?

Or am I just a hopelessly anxious person lol

2 comments

I think it's the right approach, as long as you realize you won't be able to think of everything up front, and don't let that thought be a burden.
Simply being aware that there exist things that you don't know you don't know can save your project.

This is the general basis for why I tend to pick tools & concepts that are at least a half-decade old. The space of unknown unknowns in something that has been around this long should be vanishingly-small, especially if we are applying the tool or concept in a typical way.

But definitely give it some times to think of it upfront. Weight them by 2 factor: severity and frequency. Then try to tackle as much as you can from the top list of severity * frequency level.
> You have to think your optimization approach from the other end, as how it might fail.
Definitely agree it sounds like good system design. I think the overlap is the big picture thinking. It provides a way of re-framing goals to give a clearer picture of the most important things.

So not just list everything that could go wrong, but maybe: what's a terrible day for your service/system that's most likely to happen? Cascading failures? Outage that makes accessing/recovering your system impossible? Backups unusable?