{ by david linsin }

August 25, 2008

Preposterous Bugs

As a developer you tend to be very sensitive about how software works and how it's not supposed to work. You know that it's hard to write good software, because you deal with it every day. So if you are using a web site or a program, every now and then you put on your developer's hat and analyze the software from your point of view.

I recently got a new phone, the Nokia E51 and the jolly bug parade already started with the website I tried to order it from. They provide a nice step-by-step order process. The current step is highlighted on top of the site, so you would know how much further until you are done. The steps consist of the usual order workflow, which has been implemented a zillion times on other websites. Unfortunately the people responsible for the website haven't ordered anything on the web before or didn't pay attention. First of all there was no distinction between shipping and billing address, which to me sounds like someone didn't do his homework in requirements engineering. The second thing that I noticed, was the cruel fact, that you cannot go back in single steps. You have to work your way through all the steps again, just to change your zip code, which was added in step 1 of 8. Looking at the website from a software developer's perspective, it was clear to me, that it was just so much easier to implement it this way. They don't have to synchronize state between steps and the workflow is somehow a directed graph.

If you are someone like myself, who pays attention to usability, you know that this is a no-go! Whenever I see something like this I try to be a nice customer and give them feedback.

After I received my phone, the jolly bug parade continued, this time with Nokia. They provide a great isync plug-in to enable syncing your contacts, calendars and todo-list from you phone to the mac. It works really well and I was quite surprised to see some apple magic from Nokia. Unfortunately the magic ended right after syncing, because although all my contacts are on my phone, they are not used by the phone. That means when I received an SMS or phone call of my wife, it just displayed her number instead of her name and picture. After googling for the problem, I found a couple of postings on the Nokia Forums, which suggest to clean up your contact's phone numbers. They recommend not to use blanks or dashes. According to the posting on the forums, the country prefix must use the "+" sign instead of the "00". Although I was suspicious, I removed all the blanks in my wife's contact to make sure it suits the "Nokia-Standard". After all, people on the forums reported that it helps to solve their problem, eventually. In my case it didn't! There was still no name on my display, when my wife called.

After a couple of hours research, I found out, that it works when I added my wife's contact manually or only isynced her contact in isolation. That lead me to the suspicion, that there must be contacts which screw with my phone. To my surprise it was my own contact, in particular my own cell phone number. All contacts worked fine, even with blanks or dashes, except for the contact with my own number. After excluding it from syncing, my Nokia E51 now picks up contacts when someone calls or messages.

Putting on my software developer's hat again, I have to say that this is one of the most ridiculous bugs I have ever encountered. If you stumble across a bug in a software or on a website, you sometimes think of similar bugs, that you produced yourself or that you had to fix. It's like this intuition you develop. With this Nokia E51 bug, it's nothing like that. I'm sure Nokia haven't intended to exclude your own mobile number from the contacts. There must be some weird stuff going on in the phone, that causes this strange behavior. I just cannot come up with a reasonable explanation.

As a consumer, I'm just happy that it works now. As a software developer, I'd still like to know what's the cause the problem.


Daniel Schneller said...

I noticed Nokia phones do not display resolved names for a caller when their number is present in multiple contacts. E.g. I have a dummy "AtHome" entry in my address book which contains the same number my girlfriend has stored as type "Home".
When someone calls from home the phone does not know which contact to display and resorts to the plain number.

Jared said...

One thing that I've noticed in working with more novice software developers and sometimes with management, is the tendency to code in "requirements" that aren't really necessary. In your case, it sounds likely to me that some developer said "you wouldn't need to add yourself as a contact - that doesn't make any sense - let's code this method to throw an error if it finds that." Couple that with layers closer to the gui not handling that particular error properly, and other methods having to deal with contacts not enforcing the construct, and you run into something like what you're experiencing. Just a thought - I've seen very similar things happen, where non "normal" use of software was prevented for no good reason.


  • mail(dlinsin@gmail.com)
  • jabber(dlinsin@gmail.com)
  • skype(dlinsin)