Software engineers joke that the first ninety percent of a programming task takes ninety percent of the time and the last ten percent takes the other ninety percent. The idea is that once you’ve got a program working for the majority of “happy paths”, there’s always a bunch of edge cases you need to take care of. (Daylight saving changeover? Unreliable network? German translation where all the strings are three times as long and muck up your interface?). Tying up these loose ends typi...