How to DOS a developer
who-t.blogspot.com
who-t.blogspot.com
Here's the simple algebra. Let's say (as the evidence seems to suggest) that if we interrupt a programmer, even for a minute, we're really blowing away 15 minutes of productivity. For this example, lets put two programmers, Jeff and Mutt, in open cubicles next to each other in a standard Dilbert veal-fattening farm. Mutt can't remember the name of the Unicode version of the strcpy function. He could look it up, which takes 30 seconds, or he could ask Jeff, which takes 15 seconds. Since he's sitting right next to Jeff, he asks Jeff. Jeff gets distracted and loses 15 minutes of productivity (to save Mutt 15 seconds).
http://www.joelonsoftware.com/articles/fog0000000068.html
The entire discussion about the zone is enlightening. If you haven't read it, do so; it'll make you think during your day.
To get a feel for how this feels consider the last time you took a car to be fixed and had to talk to the mechanic, or the first time you took clothes to be dry-cleaned. It feels belittling, doesn't it?
Your mechanic example isn't convincing to me (I don't remember ever feeling belittled talking to a mechanic or dry-cleaner). Trying to debug a problem that someone else is having with your code is more like a mechanic trying to fix a car solely by talking to the owner on the phone while the owner, who doesn't know the ins and outs of car maintenance, has the hood open and is holding the only wrench he owns.
Do two things: Comprehend these stories as a description of the impedance mismatch. Design your systems with this data in mind.
To get a feel for how this feels consider the last time you took a car to be fixed and had to talk to the mechanic, or the first time you took clothes to be dry-cleaned. It feels belittling, doesn't it?
Amazing how many people and institutions encounter the mismatch and do nothing about it. It sucks. It sucks = Pain. Pain = opportunity.
I found it amusing, as it has been happening to me lately.
That's a myth IMHO, there is no evidence that this is true.
Besides, I don't think the author claims that "users are stupid", but that they often don't take the time and diligence to make their case as clear as possible, because they lack awareness that the open-source devs are doing them a favor.
Apart from that, I do fear that writing this article probably won't help solving the problem.
I have observed a few devs who are not so good at understanding a different point of view while they are also fairly attention getting. I think this is where the idea comes from. Also, it's pretty hard for a non-dev to understand a dev's POV, which adds to the communications problems.
But everybody is an expert on software - since their mother told them so. I'm sick of being patronized by people who refuse to pick up the tiniest bits of the craft saying "no, no, no - that's not my job" - while they are clearly working in a field they haven't the slightest clue about.
Software has to be the only field where ignorance is used as a badge of honour: "I don't need to know anything about how it's done, I'm a project manager."
I'm an excellent communicator, I can figure out how to talk to anyone about anything (I'm a hustler by nature), but when people start talking down to me on a topic I dedicated half of my life to. I make them remember.
Actually, my girlfriend complains about this all the time. (She's African American.)
There have also been a number of recent studies that support this. In many cases, doctors have already decided the diagnosis after only 18 seconds. (So they completely tune out the rest, which is not always optimal.)
But everybody is an expert on software - since their mother told them so.
Everyone's also an expert on their own bodies. Ballplayers have been saying for years, "everyone in the stands is an expert." Programming isn't unique in this regard.
I'm an excellent communicator, I can figure out how to talk to anyone about anything
Possible red flag here. It's the other direction that's the hard part. Also the vital part.
You mean that people don't know how to talk to me? I don't have tentacles growing out of my head you know... Could you elaborate a bit?
You mean that people don't know how to talk to me?
Excellent illustration of the issue. In answer to the 2nd question: It's possibly an intractable problem!
Let me guess: you have never actually worked in the field, or if you have, it was some trivial job like CSR-1.
It's not about being clever or stupid at all. It's about being inconsiderate or unthoughtful. People of all stripes are guilty of that. Having been on the wrong end of it enough times I try very hard to give just a little thought to the role of the person to whom I'm speaking. When I go to my mechanic, I am the user and I want to make it easy for them to help me.
If it's a reasonable request, I'll try to look at it, otherwise, tough luck unless you want to become a client. If one of my clients came to me and said "I did something and some other thing broke" I wouldn't snap at them, but when it's someone who's getting free support, then it's on them to take part of the responsibility to provide as much information as possible.
Joking aside, the (user) devs should provide as many information as possible per question since back-and-forth communication cause friction which resulted in their problem got resolved slower.
Also the (user) devs should self-reflect, isn't it annoying to receive bug report without adequate information?
Pulling the information you need from users to fix a problem can be quite some work.
This decreases the time available for development. That's all. Hence "DoS".
I don't see any belittling in that.
Oh come on. It's DoS. Pretty please? Not respecting capitalization is definitely a way to DoS a developer...
Pot, kettle, black, etc.
I find the following things quite easy to do: not replying to random emails, ignoring stuff on irc.
Users communicating directly with developers is a nice idea that sounds good at first, but unfortunately it can't really work when
a) there are many orders of magnitude more users than developers
b) users are not technologically advanced enough to provide the developers with useful (and preferably only useful) information about the bugs
This means that developers are effectively DoS:ed to death when trying to directly support a piece of software with lots of non-tech-geek users. What could solve the problem would be a group of people between developers and users which could translate normal language to and from tech-speak, and evaluate the importance of different bugs. I guess this can be automated to some extent with bug-tracking software, but I don't think it's enough when the software in question has lots and lots of users.