I find it ironic that the more I am involved in the software industry, the more apparent it becomes that soft skills are just as if not more important than the technical abilities of a developer. One of the biggest challenges I have faced in my career is in managing client expectations to what one can deliver and being able to work with multiple clients. If I look at where things commonly go pear shaped, one area features a lot is where I should have said "No" to a request, but because of the way the request was made I ended up saying yes. Time and time again this has caused immense pain.
Thus, when I saw on Amazon that they had a book titled "The power of a positive no" by William Ury I had to buy it and read it. In William's book he explains an approach to saying No that while extremely simple does change the way a No is presented.
In essence he talks of a pattern the Yes! > No > Yes? Pattern.
1. Yes! -> positively and concretely describing your core interests and values
2. No. -> explicitly link your no to this YES!
3. Yes? -> suggest another positive outcome or agreement to the other person
Let me explain how I understood it.
If you are working on a really important project and someone asks you to do add a quick feature to another project, your Yes! would be to the more important project, which would mean a No to the quick feature, and an option for your Yes? may be an alternative time when you can look at it..
An example of an appropriate response would be...
It is really important that I keep to the commitment that I made to this customer to finish his project on time so I cannot work on your feature right now but I am available to help you in a weeks time.
William then goes on to explain the type of behaviour a person may display when the no is received. He illustrates this with a diagram called the curve of acceptance.
William points out that if you are aware of the type of behaviour you can expect it empowers you to stay true to your no.
Personally I think reading and having an understanding of the “soft” side of things like saying no is invaluable to a developer.