Cognitive dissonance theory shows us that when our behavior doesn’t match our intentions, we feel discomfort.  For example, a smoker might understand the health problems associated with smoking, yet may not choose to enter a program to help them quit smoking.  When they become aware that their behavior (smoking) doesn’t match their beliefs (“smoking is bad for my health”) they feel an uncomfortable tension, known as cognitive dissonance.  The more dissonance we feel, the more motivated we are to find consistency.

It’s popular to imagine our attitudes create our behavior, but studies don’t support this.  Leon Festinger’s (1957) studies show us that we bring our attitudes in line with our actions.  Our attitudes follow our behavior, not the other way around.

What does this have to do with leading programmers?
You might want to be a great technical leader for your team but spend most of your time on non-leadership work.  Coding, architecture, meetings, debugging, moving-servers-between-NOCs and status reports all get in the way of leading your people.  As you drive home each day, reflecting on your day, you might feel an uncomfortable dissonance between how you wanted to spend your time, and how you spent your time.

That dissonance causes us internal stress, which may manifest in:
1. Feelings of guilt or shame because we’re not the leader our team deserves
2. Feelings of frustration that we can’t do it all
3. Feeling like a victim of our environment or company
4. Feeling like your not “cut out” for management

Somethings gotta give
Festinger’s studies tell us most people change their attitude to align with their actions.

The smoker who resolves the dissonance by believing that the anti-smoking campaigns are part of a “government conspiracy,” is wrong but feels less stress. The overeater (like me!) who fails to control their diet might adopt an attitude that “my diet doesn’t matter as much as my genes” is wrong, but feels less stress.
This could be why I’ve seen optimistic new managers become “worn down to a nub” after 2-3 years in the job.  They calmed the dissonance by changing their beliefs about themselves or what their team needs. Sometimes this sounds like:

1. My team doesn’t need 1:1 meetings
2. My management style is easy-going, like a buddy
3. My team just manages itself
4. My team won’t respect me unless I keep coding
5. I need to keep coding to stay relevant to my team
We can’t live with the internal stress forever, so we change our beliefs to match our actions.
But that doesn’t make our beliefs right.
  • Your team needs your attention more than any server does.
  • Your team wants your feedback more than the compiler.
  • No team is self-managing.
  • Managers are not buddies.
  • Your team doesn’t want you to code more; they want you to lead better.
I know it’s hard but hang in there. You can adjust your beliefs back by changing your behavior. Remember, attitude follows behavior.
Your turn
Since you started leading developers…
  • Have your beliefs about yourself changed?
  • Have your beliefs about leadership work changed?