Why Developers Say, “It Works On My System”

by Krishna on August 28, 2009

Because it is not as bad as saying, “Don’t blame me for it.

It works on my computer” is one of those things that reminds me of how pedestrians behave as drivers and vice versa. The pedestrian feels that the driver should be careful and drive safely, but the same person, as a driver, hates all the jaywalking pedestrians. All programmers, at some point in time, have replied to a bug stating it works on their system, but it drives their team leaders (once programmers themselves) crazy when they hear them.

To the manager, this statement sounds insane. He thinks, “Why does it matter whether it works on your system? We are not talking about your system. We are talking about a customer who is unable to do their work because the application doesn’t work as it is supposed to? Why are you being so callous?

The developer, simultaneously, thinks, “There shouldn’t be any problem with the application. After all, I tested it a million different ways. It passed testing and we didn’t have any problems so far. Maybe the person at the customer site is using an unsupported environment. Maybe they are missing a necessary component or turned off something for security reasons.

The developer remembers the several times in the past when he had to deal with a supposedly huge problem in the application and then found out that the user did not have the network cable plugged in (yes, Google too stopped working!). Or that some IT wise guy decided to turn off JavaScript (all those nasty XSS exploits). Or even when the customer was specifically told not to use anything less than Windows XP, and they decided anyway to run the application on a Windows 98 box (it happened to be lying around).

Maybe this time, it is different, but probably not.

Yes, the developer knows it is not his fault. But saying that makes the developer sound too defensive. Better to use an actual fact, i.e., the application has been known to work. It is not a problem with the code he wrote. Inside, the developer also knows that he will have to fix the problem despite this statement. But he wants to win this mini-battle to maintain his credentials.

So, manager, when you hear a developer say, “It works on my system“, don’t burst into flames. Just say without any sarcasm, “OK, it is good to know that the application is working here. [significant pause] Now, can you call the customer and get it working on their system?

{ 7 comments }

LK August 31, 2009 at 12:24 am

The moment I saw the title of this post, I just couldn’t stop smiling. It’s so common in developers to think like that but I like the simplicity of your advise to deal with developers.

Krishna August 31, 2009 at 2:38 pm

Thanks for your comment, LK

sankarsan September 14, 2009 at 4:47 pm

@Krishna:Very nicely chosen topic.Developer’s say “It works on my system” mostly from a myopic vision that writing correct code is end of his job.

Kevin December 11, 2009 at 6:38 am

All programmers say this statement(loudly or in secret) sometime in their programming careers 🙂

It is kind of a knee jerk reaction. When an application that a programmer works so hard on is supposed to be failing when used by a person who doesn’t know the effort that has gone in trying to make it good, it is a natural response.

But it can make you seem arrogant. So the best solutions is to refrain from saying it up front(though you can say it in your mind :)). Then understand that software can fail due to various external and internal reasons and try to help fix the problem.

Krishna December 11, 2009 at 12:43 pm

That is right, Kevin. Programmers have to think about the perception it creates in the mind of the users when they say that.

Gunjan December 24, 2009 at 12:55 pm

This is sooo true… and happens alll the time!
nice post!
This sure will make all the developers think twice before uttering the phrase again!

Pavel March 4, 2011 at 7:22 am

People tent to put too much emphasis on emotional side of the issue, while it simply is the case of perfecting a product during development lifecycle and catching most if not all ways system works different then expected by end user. True code should work, but if goods are delivered and though an action of a user have been broken, who is responsible for it? It depends of relation between producer and consumer.

Software can be quickly fixed but analysis is akin to amount of reflection electronics designer needs to go through, but since fixes are cheaply distributed – expectation for more immediate result if often there.

2c

Comments on this entry are closed.

Previous post:

Next post: