Comment It's complicated (Score 1) 391
I'll give a simple example - if I give you two date/time stamps, how long between them? Say Monday 8am to Friday noon
It depends what the dates represent. If they're start/stop dates when a customer had no service on something they were paying for, this is 4 days 4 hours, 100 hours total. If it's time a staff member spent working on a project, it's *still* 4 days 4 hours, but those are likely only working days, 40 hours. If it was longer than a week, does the weekend count? Are some people contracted to work specific hours? If the working day doesn't start until 9am, does the hour before that count? Are there legally enforced break times? What if the person involved is only part time?
With surnames, it's complicated. Surname restrictions can get hung up on actual. Someone who lived near me had a two letter surname (Ng). There are some names in my extended family tree (outside the security question ones) that cause problems. My grandmother's sister's *married name* was "de la Haye". Two spaces, and the capital on the noun, but not the first letter.
These are simple, trivial examples, but they're done wrong all the time. The work involves holding a lot of details in your head, including the problem, the language, the libraries you're using, the user's request (which might not be possible), it's effect on system performance, all the while under time pressure from management to work fast.
If you want 100% bug free software, we can try exhaustive testing, but it will take much longer, involve much more people who cost much more themselves - and inevitable result in less powerful code that was less features. Feature requests will stall. Think internal systems for things that cannot fail. I was going to put examples here like aeroplance, cars, spacecraft systems - but they pressure to release a lot has caused failures here too.