On more than one occasion, I've been asked by a client to dig into an issue only to discover that either it appears that the feature or bug has already been implemented/fixed, or that 99% of what would be necessary to make it happen is already in place.  I pride myself on my honesty in these kinds of dealings, as in general, I find that making someone happy by saying "I only spent an hour on this, because it turns out someone has already fixed it" is worth 100 times what I might have gained by pretending to fix or refixing it in some alternate way just to bill a bunch of hours.  Not only is the customer pleased to get something more or less for free, but I gain their trust that I am not going to jerk them around in future dealings. This is critically important when you need to deliver bad news, such as when something that appeared to be straightforward will actually take much longer than expected.

This situation comes up in any circumstance where there is significant information disparity between customer and expert.  I belong to Angie's List, and the comments on many of the top-rated providers are of the form "I took my {furnace, car, stove, etc} to 10 repair people who all said that it would need to be totally replaced for $2000.  Then I heard about Super Repair, who came out to my house, took one look at it, hit it with a hammer, and now everything has been working perfectly! A+!"  The recurring theme is that true experts don't feel the need to earn their living by overcharging for full replacements and extra work; they would much rather solve the problem and move on to their steady stream of referrals.  This got me to thinking, if you are in the market for a high-quality contract developer, in the absence of a direct referral, could you plant such a bug or feature among your list of things to do in an effort to check the quality of the contractor?

The idea is fairly simple.  Just add a bug or feature to the list that you know has recently been resolved.  Make sure to point the contractor to the approximate section of the code where you know this fix to reside (since it's very possible in a large code base that even a very competent contractor could look elsewhere for a resolution and miss the fix).  There are a few possible outcomes:

  1. They come back to you and say "it looks like this is already there".  You know you've got a good contractor on your hands. 
  2. They end up billing a couple of days to it and saying nothing about it.  They are either lying or incompetent.  Steer clear.
  3. They bill some time to it, discover that it is already there, and say as much.  This can easily happen when someone starts with a different approach to solving the problem but then eventually finds themselves in the code that already has the fix.  This is the cost of this trick: billing on something that has already been fixed.  You probably still have a decent contractor.

It's also possible that they sniff out the set-up, but if they, like me, have seen this happen often due to simple communication problems on a team, that seems unlikely.  Overall, I would bet that it would be an effective and relatively low-cost way to quickly vet a prospective long-term contractor.  Has anyone out there actually tried this?

I own a handful of domain names, some for corporate purposes, and I also have a personal domain that I use for my personal email. This domain name is sort of a pun on my last name, and it's a made-up word. Combined with a tricky orthography (there is an 'L' next to a 'T' which, when written lower case can look like a sloppy 'H'), I'm always hesitant to give it out in any form other than electronic since it will almost assuredly be mistranscribed at some point.

When I selected the domain name way back in '99, I never considered the "confusability" factor of the name. I'd love to select a new domain to use for personal purposes that is easily understood in non-electronic contexts, but I've had trouble selecting one that meets all the necessary criteria. Here are my basic constraints:

  • It must be easily understood when spoken, such as when given out over the phone.
  • It must be easily understood when written, either in upper or lower case letters.
  • It should be interesting enough to be memorable, but not goofy or unprofessional such that I would be embarrassed to write or speak it.
  • It must be available!

These constraints imply a lot of things, based on my experience.  To be understood in a spoken context, the name must:

  • Consist of dictionary words, preferably a small number - Non-dictionary words, especially cutesy ones that you find in a lot of domain names, almost always require a letter-by-letter spelling.  Negative bonus points for intentional slight mispellings of a common word (Flickr and other annoying Web 2.0 convention-followers, I'm looking at you).
  • Avoid homophones - People will invariably use the wrong version.  You will be surprised how many homophones there are when you start trying to come up with names that avoid them.
  • Avoid numbers - Unless you want to buy both mydomainone.com and mydomain1.com
  • Avoid sounds that run together and create sound-alike words - For instance, you probably don't want to go with MicePace.com

To be understood in a written context, the name must:

  • Avoid i, l unless in a totally unambiguous context - They will inevitably be transcribed alternately as each other, or as the number 1.
  • Avoid o, unless in a totally unambiguous context - It will inevitably be transcribed as a zero.

Finally, the trickiest one: something that is memorable, but not embarrassing must:

  • Use an odd combination of words, or be oddly related to the person or service using it.
  • Use hard consonants or alliteration to create a strong sound
  • Evoke a strong image in a person's mind.

So what domain names currently meet all these criteria?  One great example is amazon.com.  It consists of a dictionary word, does not have a homophone or other sound-alike element, has no numbers, uses 'o' in an unambiguous context, is oddly related to the product, and evokes a strong image.  Distancesoftware.com is not outstanding, as the ending 's' of Distance and the starting 's' of Software blend together in a spoken context, but overall I've been happy with it.  If you have other examples of either very good or very bad domain names from a confusability standpoint, please post in the comments.  I'll update when I select a new personal domain.