Friday, August 28, 2009

A rant on namespaces

If the idea of naming things is to make them easy to locate, then we have to take culture into consideration.

For example, In Italy (Well Pisa anyway, because that's where I first encountered this), the street names typically START with Via (Street) and then there is more. They are often named after people, so there may be some kind of honorific, then a first (usually Christian) name and then a last name. A lot to absorb if you don't know what is relevant. So the first word (Via) is noise if I am trying to figure out where I am while driving by, attempting to avoid the rest of the traffic and hunt for the correct turning all happening in a foreign language and culture. The local people get it. It is their way and their culture and I adapt - with some occasional getting lost.

Another example. One campus I have visited has 2 buildings that are essentially mirror images of each other. There are other differences but they are minor. The naming conventions for conferences are, however the same.

They go something like BLDGA 2-407-Singapore or BLDGB 3-617-Athens. The point being made here is that the first 4 characters are identical (and thus redundant). The useful high level identoifier A or B is busied attached to BLDG and so is hard to notice. There are no other cues in the strings because the conference room names are all geographic. So no pattern possible there.

The 2-407 is actually a floor number and a neighborhood number. However the 2 can be hard to see because it is a single value embedded in the string. So I would generally see just the 407. Being accustomed to US hotels, I would immediately think that is floor 4 room 7. Thus I go to the wrong place.

This naming scheme fails on so many levels:
  • The first 4 characters are redundant
  • The name of the room is irrelevant - it doesn't really help locate anything
  • The building id is buried deep
  • The floor and neighborhood are treated seperately but the first character of the neighborhood is drawn from the same domain as floor numbers.

You might wonder why I make such a big deal of this. It is because it adds to the burden of finding things - makes it hard to learn where to go - especially for new contractors/employees. It makes sense logically, but not when placed into the context of actual use.

Sadly like so many systems we build.