Without making any claims on my level of "smartness", I will say that I tend to shut down pretty quickly when it becomes apparent that the person I'm "sharing" with is really just more interested in me doing his job for him.
Yes, when I was young and just starting out, the older DBAs and SAs often seemed reluctant to help out the developers or the users with ad-hoc requests. The DBAs in particular would just run a script they were given and send the dev the output, even if that output was just an error. I thought this was a bit poor, aren't we all on the same team? But, when I started to help people I soon found the truth. Either you were like that, or you spent the whole time debugging other people's stuff, doing work they couldn't be bothered to do, you'd spend ages working on a report or a feature and then the person who wanted it would say, oh, sorry, I don't need that anymore.
It's human nature. Something that is given freely has no value. Now I only trade time and knowledge with equals.
I've found that how you ask makes a big difference in how likely you are to get an answer. For example:
1.) On a mailing list, listing things you've already tried and other resources you've already read makes people more inclined to answer you. It shows that you're serious about solving the problem and just need a little help to get there, and keeps them from having to play 20 questions with what you already know.
2.) If you're asking a coworker to do something, ask if you can watch. They'll figure that you'll be able to do it yourself next time.
3.) In all cases, fundamental questions seem to be more useful than specific questions. "Where's that log data kept? How do I get access to it? What format is it in?" is more useful than "Can you look up who was scraping our server at 10:40 PM yesterday for me?", because the former lets you solve a whole class of problems by yourself, while the latter just takes care of the immediate need.
nostrademons suggestions are a great way to mark yourself as someone trying both to improve and not waste another's time.
I had blogged about how to ask an expert for help in http://www.skmurphy.com/blog/2007/12/12/how-to-ask-an-expert... and suggested a couple more depending upon context. Robert Kelley in "How to Be a Star at Work" had these broader for novices in a new environment:
o Build your network before you need it, if possible.
o Be very mindful of people’s time and don’t waste it.
o Give careful thought to how you phrase your request or question.
o Summarize your attempts to solve the problem or find the information you as asking for help with.
o Verbally thank and follow up in writing, publicly credit.
At my level, I'm as happy to help as can be; if a developer (that I know) needs some data from Prod or some performance tuning help, I'll just do it, if I have a problem with some of my own PL/SQL he'll help me. Everyone involved in this cosy arrangement (including me obv) knows not to abuse it. An outsider or a newcomer gets a chance to demonstrate their own value to the network (or the clique if you prefer) and if they don't, then they need to go through "official channels" for anything they want. And that can take days or weeks for the simplest thing... :-)
I always try to ask questions in terms of outcomes, and I ask people to do the same when they come to me. Describe the result you want to achieve, and I'll tell you the best way to get there. Asking too specific a question could just send you further down a blind alley...
That's true . . . but it's also true that if you want to have more equals to trade with, one good way to do that is to mentor younger employees, and that requires sharing time and knowledge with people who are not yet equals.
"Now I only trade time and knowledge with equals."
If someone is clearly trying to improve themselves it never hurts to spend a few minutes helping them. Also, does this rule out asking folks who are smarter or more knowledgeable for help?
If I am expert in subject A and know nothing about B, and someone else knows B and needs A, then we're in business. Even if they know C (heh), maybe I will need that in the future, we're still equals.
I've never encountered someone who had the right attitude and not had something to trade.
Your argument might come across a little selfish, but I wholeheartedly agree with you.
I've found that there are an enormous number of people out there who are really just looking for the quick fix and want it cheap (aka free). You'll invest and start explaining something to them and once they realize you're trying to show them how to do it themselves and that you aren't going to just do it for them, they quickly lose interest.
If they instead place some sort of value on the knowledge they want from you, and realize it isn't free (I.e. it will at least take some time and energy for them to apply), the more receptive they are.