This presentation was given at DevConf.cz 2013 and borrows heavily from a negotiation seminar led by David Eaves that I participated in prior to OSCON 2011, with slides adapted from a presentation (unpublished) on this same topic by Dave Neary.
The best Open Source hackers are great at the "soft skills" related to hacking - resolving conflict, gathering support around a direction for the project, and understanding what the user *really* wants in a bug report. Every feature request and implementation discussion, bug report and mailing list thread is a negotiation.
There is a well established, common sense, very effective way to think of negotiations which will help you improve as a developer, and make your project better at the same time, from the Harvard Negotiation Project. Using this theory, you will be able to get better outcomes when dealing with frustrated users, colleagues and bosses. You can even apply the principles to domestic debates, wage negotiations and dealing with used car salesmen.