“Do you know how long that’s going to take?”

When I read about ICANN’s proposal to let anyone register a TLD (top-level domain; the .com, .net, .edu part), I can’t help but think of the number of systems that check email addresses (or domains in general) for validity, and won’t accept any email address that ends in anything but the few most common TLDs.

It would have been better if they had done everything correctly upfront, right? There’s an established standard for emails that
has been around for years describing — in painstaking detail — how to tell if an email address is valid. Surely it’s not hard to do it right, right?

There are two ways to deal with an issue:

  • do it right the first time
  • do the best you can and deal with issues as they arise

It seems that there are characteristics of situations that make one option more appropriate than the other.

  • Is it is an established thing?
  • Is the “right way” easy to learn?
  • Is it something that will last over time (the foundation of a house, as opposed to the color of the paint), or is it inherent that the thing will change soon?

Possibly everything starts as “best you can” and eventually moves to “do it right”. When we are babies learning to walk, we don’t consult textbooks on human mechanics; we don’t visit specialized doctors who focus on the angle of the spinal column to the neck; we get up and fall down a lot. It’s a new thing, and any given sequence of steps is a momentary thing, we aren’t still reliant on the series of steps we took years ago.

When considering software, however, the characteristics blend a lot. Software stays around for a while; I read a great quote relating to this:

“Obsolete hardware gets replaced. Obsolete software goes into production every night”

There are easily millions of lines of code that are 30-40 years old that are still used today. That’s definitely a vote to do it right. However, software development is not established — at least, not in the sense of cooking, where professional chefs have existed for thousands of years and the art is well-defined. Software development is still changing. Even the standards I talk about will change as we have new needs. The people who are writing the standards are just doing the best they can!

I suppose most things aren’t clear cut either. The humor of this whole thing is that the decision between “do it right” or “best you can” itself requires you do just make the best decision you can. :)

So in the end, is the answer to do things as right as you can, to the best of your ability, and not worry about the rest?

Leave a Reply