Categories
Projects

Nothing ever works

This is also known as “Nick’s Law” (especially when I’m the one working on the code) and it’s a good thing to remember in software engineering. It’s kind of like Murphy’s law, but to a greater extreme.

You ever go up to a vending machine and try to buy a bottle of water, but the credit card reader doesn’t work? Of course it doesn’t. Nothing ever works. Or at least, at some point, whatever is working now will stop working. You have a printer at home? Does it ever work? Does it always work? If so, you’re lucky or just a stinking liar.

I hope its obvious that I’m being cheeky here. Most things work as we expect them to most of the time. Maybe a better law is “nothing always works as you expect” and I think you will definitely agree with that (oh crap, I think that’s just Murphy’s law. Oh well I’m still taking it).

So what’s the takeaway here? You guessed it. Defensive programming. Or even better, as Google likes to say, “programming over time” vs just “programming” (according to the authors of Software Engineering at Google). In that book they discuss Hyrums’ law, which says at some point every observable part of your API will be depended on by someone. If you combine these two ideas, you’ll see that

  1. Every part of your application will be depended on by someone
  2. Every part of your application will fail at some point

How do you prevent this? You can’t. Software is hard. Stuff breaks. But hopefully this shows you the importance of writing code that is easy to understand and maintain. Because at some point, someone will depend on it, and at some point, it will break.

One reply on “Nothing ever works”

Leave a Reply

Your email address will not be published.