<quote>c. Have already established a friendship with the person who can fix the problem. I brought cookies for you! Hope you like them. By the way, there's a small problem with the X. Could you look at it sometime?</quote>
I agree with all of your points (for large companies). I think this is generally a result of siloing and reporting chains that are vertical when necessary job activites are often horizontal across reporting chains.
I'd like to single out your point c. as a key example of why it is better to get along and go along and to be friends with key assets in your company. As an employee and a consultant working for other companies and requiring their technical assets to assist (when time is rarely budgeted for those assets to do so), I can say that it has always been a great idea to know, make friends with, and be thought of as a friend by:
i) IT staff (someone has a non-critical problem, I have a non-critical problem, that other person is a jerk to the IT department, I have lunch and commiserate with them.... guess whose non-critical problem gets first attention?)
ii) Admin/reception/payroll staff (timesheet issues and invoice issues get solved much more easily)
iii) Key developers in customer organizations (who then make the time to help a friend moreso than to help 'the contractor')
iv) Key developers and project managers in your own organization (who then listen to your issues if you present them carefully and sometimes this buys you extra time or management support)
A lot of times, it is just about listening to other people's issues re the job or their home life and being a bit sympathetic. Sometimes it means spending a few minutes of your time helping them out when you aren't obliged to. Combine these, and you've got both a sense of debt and a sense you are a friend and those go a long way in ANY setting.
This isn't a mercenary/manipulative concept - I actually do care about the people around me and their troubles. I know that if I help them, they'll usually help me if they can. Sometimes they can't and being understanding about that is pretty important too. If someone is swamped, recognize that and let them be - just ask if there is a time you might be able to talk to them once they are less swamped. Often times they'll be able to help you later in the day or the next day.
Exhaust all your own resources and solutions first before bothering others (unless they will take exhorbant amounts of time). When you go ask for help, you want the other asset to understand that you've done your due diligence and have actually hit a wall.
Another problem with some social networks inside companies is that they end up being trolled by management, HR, managers, etc. and so nobody wants to speak up much on them. Honesty that would come out in meetings of a few people who didn't feel threatened by one another or their manager won't come out on larger public forums where anyone in the food chain could be watching.