Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

We've all had the experience. You go to someone who you know has the answer to a question, ask that person the question and they answer with the typical response "why?". You explain why you need to know, and they attempt to solve your problem.

It takes time, arm twisting and patience to steer the conversation back to the original question and just get that darn answer.

Why do programmers constantly do this, and why does the behavior get worse the more senior the programmer becomes?

How can you ask a programmer a question in a way most efficient in extracting the answer to the original question?

EDIT:

A lot of the comments pertain to explain why the developer behaves this way, and recommend that the asker perform more research before asking the question.

There is also the situation where the developer wants to advise the developer to take another path, but I want to avoid explaining or justifying my decisions. They are unrelated to the question, but the other developer wants to make it related.

This is not an answer to the above question.

The question is specifically how does one engage with another programmer to ask a question, where the other has the answer and skip the debate about why the question is being asked.

share|improve this question

closed as not a real question by Ozz, user61852, gnat, BЈовић, Martijn Pieters Jun 17 '13 at 0:07

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

23  
Why do you want to know this? Tell us which is your real issue, please... –  SJuan76 Jun 16 '13 at 16:54
12  
It's most likely because they know you very likely don't need that answer. How do I walk on water? Why? I want to cross the river Build a boat. –  jozefg Jun 16 '13 at 16:57
6  
It's a trick, designed to stop you from wasting our time. You will either learn to be precise, or quit asking. –  Yannis Rizos Jun 16 '13 at 16:57
4  
Because more senior programmers know that most questions asked of them are XY-questions. –  Marjan Venema Jun 16 '13 at 16:57
4  
"A lot of the comments pertain to explain why the developer behaves this way ... This is not an answer to the above question." It is a direct answer to the question "Why do programmers constantly do this, and why does the behavior get worse the more senior the programmer becomes?" which is included in the body of the post. This also demonstrates why programmers act like this: the people asking the questions frequently don't want the answers to the questions they ask, but instead want the answers to the questions they meant. –  Mark Bannister Jun 16 '13 at 19:06
show 13 more comments

4 Answers

up vote 28 down vote accepted

It's because it requires more knowledge to evaluate if a solution is appropriate than to actually implement the solution. In other words, it's very difficult to believe someone when they say, "I don't know how to do this, but I know for sure it's what I need to do." Programmers constantly insist on probing deeper because people constantly insist on asking the wrong questions. Yes, sometimes it eventually comes back around to your original question, but not always.

As an analogy, imagine if someone walked up to a mechanic and asked him how to replace a car battery. Well, usually if you're qualified to diagnose a defective battery, you're qualified to change one, so the mechanic will ask how you know it needs replacing.

He knows if he doesn't do this, and it turns out you don't need a battery, then you'll keep coming back asking more and more questions until eventually you figure out that you have to turn the lights off when the engine's not running. By asking you up front, it feels like he's wasting your time, but really he knows from experience that he's potentially saving both of you a lot more time.

So, if you want to avoid the line of questioning, you need to convince him up front that you know what you're talking about.

share|improve this answer
2  
+1 Very nice write up of the XY problem. –  Marjan Venema Jun 16 '13 at 19:02
    
Exactly this. Clients who have no idea what they want are a pain in the ass. Clients who know exactly what they want are often worse. Don't leave out the business requirement when asking for info. Every little thing we do is often highly context-relevant. –  Erik Reppen Jun 17 '13 at 0:13
add comment

"The question is specifically how does one engage with another programmer to ask a question, where the other has the answer and skip the debate about why the question is being asked."

You can't, at least not deterministically. The other programmer is a person, not a computer, and not your servant. If you ask them a question they get to choose what they think is the best answer. If they think they need more context they get to ask for it.

You could try prefacing your question with a statement that you are only looking for a short, bottom line answer, but they're still free to answer as they think best.

share|improve this answer
add comment

Why do programmers constantly do this, and why does the behavior get worse the more senior the programmer becomes?

Unfortunately it's as far from general truth as it gets.

That behavior is restricted to the minority of really good ones. And you better should learn it too.

Just answering the damned question skipping over the whys is a good way to drive into a chasm, fast and sure.


If you really want to skip the educated part, you can prefix your question with a few sentences on limitations and your desire to skip questions -- you may get some answer or just sent off. Presenting summary your own research is a better idea.

share|improve this answer
add comment

The question is specifically how does one engage with another programmer to ask a question, where the other has the answer and skip the debate about why the question is being asked.

You can't. Programmers, especially good ones, are wired to solve problems and to be efficient. When a customer or a fellow programmer comes looking for an answer - they will make sure to know the problem they are solving, before presenting a solution. That way they are efficient (they are not wasting your and their time by giving an answer that will not solve your problem) and they are solving real problems (by giving you solutions / answers to questions that you should be asking).

Example - when a client comes to you and says he wants an X feature implemented. Sometimes the client really needs an X feature and sometimes you really have to dig in and interrogate the customer just to find out that they don't want X but something completely different. The older and experienced the programmers are the more likely they were burned in the past by not getting to the heart of the problem before presenting a solution.

So to summarize - if you want your questions answered precisely you need to be sure that you're:

  • asking the right questions (thus you need to research the problem beforehand)
  • providing the context for the problem
  • sharing some of you're research to direct them faster to the problem

The most humans I know are just humans and not computers. If you just want answers try googling it.

share|improve this answer
    
+1 Exactly. How many times the customers requested to implement a feature which will cost thousands of dollars in terms of development, while the actual business need can be easily solved with a tool which already exists, often at no cost! –  MainMa Jun 16 '13 at 21:33
    
By analogy, it's like telling to a surgeon to do a specific set of operations on you. I bet he will ask you what is exactly your health problem, then tell you that you don't need any surgery in the first place, since your problem can be solved by going to a chiropractor. –  MainMa Jun 16 '13 at 21:39
    
Exactly :) And you would probably expect from a surgeon to do exactly that. –  Christian P Jun 17 '13 at 6:56
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.