Sandi Metz, February 7, 2018, 4:45pm EST
This is not technical, but is about the problems in real programming and software across the board. The programming languages are the easy parts of programming / development.
The community is good, but we're not entirely happy... and there's data on that.
[Ref. study on Unhappiness of Software Developers]
Top 10 causes of programmer unhappiness:
- Being stuck in problems solving
- Time pressure external
- Bad code quality and coding practice external
- Under-performing colleague external
- Feel inadequate with work
- Mundane / repetitive task
- Unexplained or broken code external
- Bad decision making external
- Imposed limitation of development external
- Personal issues, not work-related
All of the 'external' issues have to do with other people. And the root problem here is a problem of persuasion.
Cialdini's 6 rules, built on research (from Influence)
- Reciprocity - you're obligated to respond after I do a favor
- Hare Krishnas giving flowers, taking money
- Consistency - we strongly desire to appear faithful to what we've said
- Social Proof - If I don't know how to behave, I'll look around at others
- Authority - We defer to those who seem to know more / possess authority
- Liking - If people like you, they are more likely to do as you ask
- Scarcity - Fear of missing out adds value to surprising things, and persuades
He describes these as weapons of influence. He is talking about using these non-transparently to manipulate people.
Dale Carnegie / How to Win Friends and Influence People
- Make People Like You
- Handling People
- Win People To Your Way of Thinking
- Be a Leader
Act as if others are interesting, and you will eventually find them so.
...But all of the advice here is predicated on us being right.
If you're wrong and get better at persuasion, it will make things worse. We are often reduced to opinion and dispute about means when we have the same ends that are possibly being ignored in the conversations.
Daniel Pink / DriVE (also check out his TED talk)
What he discovered was that, where cognitive skills are concerned, bonuses and rewards only motivate if someone is not being paid enough (for basics).
The big motivators for creative, cognitive tasks are
- Autonomy
- Mastery
- Purpose
Instead of asking 'How can we be more persuasive?', maybe we should ask 'How can we build better teams?'
[Ref. Google's "Project Aristotle" study]
In Google's study, they couldn't find significant 'who' factors that had an impact on team performance, etc. But they did begin to look into group norms (which can override individual preferences).
Do teams evolve IQs distinct from the individuals that make them up?
The primary factor turns out to be how the members of the team treat one another. (Parameters connected to 'Psychological safety')
This starts with you.
You can set the tone for your next team meeting.
Fear may be the background noise of the human condition, but we don't have to succumb to it. You are good enough. You aren't your past or your code.
To build the best team, you must be your best self.