-
-
Few months ago I found out about a book How to Win Friends & Influence People by Dale Carnegie that was recommended by Joel Spolsky:

Finally, and I know it
sounds cheesy, but Dale Carnegie’s 1937 book How to Win Friends &
Influence People is actually a fantastic introduction to interpersonal
skills. It’s the first book I make all the management trainees at Fog
Creek read, before anything else, and they always snicker when I tell
them to read it, and love it when they’re done.
Well, book did sound
really cheesy. Accidentally I came across this book in audio format
which duration was little more than 5 hours. The book was short,
simple, pragmatic and surprisingly reviling. It focuses on people
relations, communications and misunderstandings. The whole book is
composed of real world anecdotes so messages are clear and very easy
for listening. The book main lesson on people relations (in my own
interpretation) is: listen, understand and respect other. For summary of all advices see this link.
Who is this book for?
Well book title
sounds like a weapon for some insincere and manipulative manager, but
turns out that it contains useful lessons for everyday life and
surprisingly useful in everyday work of an engineer.
Programmers and Communication
Programmers, probably like any other engineers, aren't focused so much
on people relations in every day work. They are focused on technical
issues that are very much enough for consuming person's whole taught in
one day. Problem is that problems being solved by programmers tend to
be complex and like that are better solved when more brains are involved in synergy.
Problems being solved
by programmers are such that there is no “one right solution”, so
informed decisions must be made by team members on daily basis and all
team members should be aware of them. Usually, decision process
consists of every man contributing with ideas. All ideas are valuable
in some way but small amount of them will be accepted. This can lead to
broken pride and programmers are known to have ego issues.
From all said above it should be clear that good engineer should also be good communicators. If we take a look at Scrum, we'll see that basically Scrum Master is playing role of communication facilitator in software development. That’s how important is communication in Scrum.
Avoiding Confrontations
One of the best advices I have received from this book is “Avoid arguments, you can only lose”. [... read more on my blog]