Whining Programmers

| Tuesday, February 3, 2009

A friend of mine sent me this email:

I had a conversation today with two senior programmers who happen to be users of a web based system that I have ownership of. The conversation started with the programmers expressing frustration with the search mechanism on the system they were using. I asked what they were searching for and they couldn’t remember but still wanted to complain about it. I’ve had the very same conversation with them before so I had an idea of what they were trying to do and I sent a big long explanation of how delimiters work in search phrases and how free text searching works which is why searching for “this.that” will return “this”, “that”, and many other combinations of those terms.

The users had a very simple problem that could be solved a few ways. Sure we could regex the where clause or do some other fancy tricks but why bother? This is a problem for two people out of 150 users. There is a very specific list of phrases that exists that they want to tag items with. The right thing to do is index those phrases and allow them to tag their items with these indexed phrases. Doing this also allows us to efficiently search on those indexed phrases.

They were not satisfied with this response. In fact, one programmer said something to the effect of “could you imagine if other searches worked this way”, and “why doesn’t the search just give me what I asked for?'”. At this point I felt like I was being challenged and talked down to. Hoping to give them an example that would make more sense, I asked the programmer to type their phrase in Google and see what happens. I also asked the programmer to then click on Google’s advanced search and see what Google did to their phrase. I was hoping for an “ah, I get it now. Lets index these phrases like you suggested”. Instead I got a “I’ll just come see you when I can’t find something”. Now I’m the one that is frustrated.

Like I said before, these two are senior programmers. I respect both of them because they have been doing what they do for a very long time. I figured maybe I had it wrong. Maybe, just maybe, I could learn something here and get schooled by a couple of old school programmers. I decided to take the very same search concept that they were trying and tested it on a system that they maintain.

Remember, the system they were complaining about is web based so search times need to be fast. The searches they were frustrated with took between seven and 30 seconds depending on the use of a free text search option we gave them. So, I logged on to their system, set up some data to match the very same scenario they threw at me and did my search. Their database is much larger so I was anticipating the search to take a couple of minutes rather than seconds. After about 45 minutes I stopped checking on it.

Seems to me like they are faced with the very same issue except they don’t get cool features like free text in their programming language. They would have to index the phrases somehow or write some intelligent code to handle the search but it did not work out of the box which surprises me because they seemed so shocked that my search didn’t work for them. My response to them was “Why doesn’t the search give me what I asked for?”.

I think there is a fine line between expressing frustration with a problem and whining about it. These “senior” programmers are problem solvers one would think. If my friend is explaining how his search mechanism works and they disagree with it or know of a better way to do it then they should have offered up some of their wisdom. Instead, they ended up whining and looking silly.

Programmers should approach other programmers with examples and suggestions if they find something they don’t like or disagree with. Whining creates problems, it doesn’t solve them.

I take that back. Some whining is ok as long as you know you are whining. Get over it and move on to the next challenge.

0 comments:

Post a Comment

This blog has an advanced spam detections system. Send us spam and we will shoot a missile into your living room.