Expect the Uexpected

There are certain classes in science and mathematics that computer science and software engineering people don't think they will need in a real job. These include:
  • finite arithmetic,
  • the limits of measurement; and,
  • quantum physics.
Unfortunately if you work with real numbers, measure anything or interact with time your simple straight forward problem turns into a twisty mess of complex cases as you do your best with what information you have.

We frequently drop complexity out by making useful models of the world. This simplification allows us to make a solution. But the next step is add back in the relevant bits where the real world upsets our model.

Be on the look out for places where those difficult cases might turn up and not let them arrive unexpected.