For a while now I’ve being reading a great book – “12 Essential Skills for Software Architects” by Dave Hendricksen.
This book is really-really awesome, and I am going to write about it in more details, but today I want to talk about one very important topics, touched in this book: how to talk with people. By people I mean our co-workers, our teammates, our managers and our customers.
We often tend to just “speak our mind”. Straight. And it does not necessarily end well. Because – you remember? – a person you are talking to will get only approximately 20% percent of it, by “get” I mean, (s)he will understand it the way you intended things to be understood. And very often these 20% won’t be the ones you think are the most important. So quite often, when you are trying to say: “let’s make this piece of code better!” you are heard like “you do not know how to code!” You see some problems with the suggested design, and you respond: no, this is not going to work! You need to change it! And the only thing which happens – you put you opponent into defensive mode.
Meanwhile, you can always say exactly what you want, just using slightly different words. For example, something like this: I am not sure I like an idea of adding this column… I think, it may cause some problems in X and Y situations. What do you think? I was wondering, whether we could consider Z instead. May be, we can experiment and return to this discussion in a week?
This way you didn’t offend anybody, and people are actually willing to listen to your advice. I love the quote from the above book:
If you wish to make a man your enemy, tell him simply, “You are wrong”. This method works every time.
… to be continued