Let’s stop learned helplessness in software engineering

We teach managers how to treat us by what we tolerate.

Shifting your work paradigm for the better.

Over the past 24 hours, two of my articles, Why Your Programmer Just Wants To Code and A Wake-Up Call For Tech Managers, received over 96,000 reads on Medium and over 900 Reddit comments.

It appears we have a bigger problem than I thought.

Yes, we have some bad managers at tech companies. And yes I was hard on them, placing the blame for programmer apathy directly in their lap.

But I want to help programmers who feel frustrated, disenfranchised, or shut-down. It was you who posted the vast majority of comments, describing terrible conditions and awful management. You raised your hand to say, “I’m tired of this.”

Starting today, let’s change this.

We, as programmers, have accepted this behavior.

We teach managers how to treat us by what we tolerate.

Let’s get real. We can’t change everything alone, but we have more power than we think.

Here are some actionable ways you can radically change your work environment.

Recognize that your manager wants to do a good job.

Chances are good your boss used to be an engineer, just like you. Tech companies embrace the Peter Principle, and they promote people to the level where they begin to fail.

It doesn’t help that your manager probably received less training than your barista. (76% received less than 8-hours of training for their role!)

No one is born knowing how to manage or lead. The phrase “natural-born leader” is crap.

Many tech managers wonder if they are “cut out” for their job. Honestly, most of them wish they were still programming!

The transition from Programmer to Manager is hard, so let’s start by giving them a break. Yes, they need to change. But who doesn’t? No one is perfect.

Let’s find ways to change the environment so we can improve, together.

Your manager works in a bad environment (and so do you!)

Both you and your boss are part of an environment with problems. Chances are, they didn’t create the environment. In fact, they feel as victimized by bad environments as you do.

Tech leaders almost never control…

  • What features / bugs programmers work on
  • How much programmers get paid
  • How much vacation programmers receive
  • What benefits they can offer programmers
  • Where programmers sit, and what type of computer they use
  • If and when programmers can work remotely
  • What languages and frameworks are used

The company, culture and environment usually dictates those things, and it frustrates the hell out of your boss.

Recognize that no PERSON is stopping you, but the ENVIRONMENT might be.

You and your manager are the victim of a third thing: a bad environment. Bad environments have smells, just like bad code has smells.

Here are some environmental smells you might notice:

  • People talk about what they would improve if they were in control.
  • Lack of curiosity about project value and outcomes.
  • A feeling of powerlessness to make improvements.
  • A feeling that “everyone else can screw-up, but we are held accountable”.
  • Continuing to do things “like we always have” for fear of making a mistake (and being punished.)
  • Lots of talk about change; very little actual change.
  • And many more…

I’ve worked in oppressive environments; and it’s stifling. It feels like you can’t breathe, and it leaves you frustrated and angry.

Leadership isn’t granted, it’s grasped.

Think about the folks you side-by-side with for a moment. Are their any that you’d describe as an unappointed, informal leader? (Companies appoint Managers, but leaders seem to pop-up everywhere.)

Watch them closely. What do they do differently? Why do suppose they are doing it? How do others respond to them?

At my first job, I noticed that a co-worker, Milind, acted a bit differently than others. He was an informal leader on the team, even though I didn’t realize it at first.

For example, Milind…

  • Asked key questions about WHY particular approach were taken.
  • Admitted his ignorance in a group setting, and asked the boss to explain ideas more clearly.
  • Never hesitated to call the customer to clarify, or even negotiate a requirement
  • Stayed hyper-focused on delivering real software, vs. discussing his tools
  • Insisted that we understand the root cause for problems

Milind changed our environment by his actions, and he certainly changed my view of “Software Engineering.” He even changed how our boss acted!

He showed me that I had much more power than I thought; if I would only stop expecting to be spoon-fed everything.

His actions showed me that true leadership isn’t granted, it’s grasped.

With time I changed my behavior, and others did as well. So can you.

Talk about the environment, not just the process.

Most of teams discuss their agile process. What worked, what didn’t, how can things improve. That’s what an agile retrospective is for. The best teams regularly talk about it, and even make changes to improve things.

Great teams also talk about their environment.

They spend time discussing environmental issues, like:

  • How people are working together
  • How much they trust each other
  • How emotionally safe the environment is
  • How communication can be improved
  • How people can help each other more, and receive help more easily
  • How they can become better problem-solvers
  • How ego and self-image impact the way they work

Begin to make your environment a topic of discussion, and you may well see things change.

You don’t have to get approval from anyone for this. Don’t expect your boss to hold a meeting entitled How To Improve The Software Development Environment. Don’t propose it for the next team meeting.

Just start talking about it.

Start questioning assumptions, bringing up environmental topics in your retrospectives. The more you talk about it, the more others will too.

Schedule a one-on-one with your boss.

If you don’t have a regular one-on-one with your boss, ask for one. You don’t have to wait for them to initiate it. Most people feel awkward doing this, but every time I’ve done it my manager was thrilled I asked.

See, most managers see value in one-on-ones, but they suspect you don’t. Asking for one changes the dynamic completely.

Send a brief agenda in advance, and come prepared. (Unsure what to talk about? Grab a copy of the One-on-One Framework for some ideas.)

A sample agenda might be:

In your one-on-one, consider telling your boss that you’re working to change yourself, and the environment. That you want to be a more effective engineer, and create a more effective team environment. That you know tech skills are only a part of what makes a good engineer, and you want to improve your leadership skills.

They won’t feel threatened. You aren’t trying to take their job, but about doing your job better.

Every manager wants self-lead programmers, and self-managed teams. That’s the promise of agile, right? Your efforts will make their life easier.

Give this a try, and let me know how it goes.

-Marcus Blankenship, Hacker, Problem Solver, Calvinist, Geek. Author of Habits That Harm Your Technical Team.

This article originally appeared on Hacker Noon.

Interested in reading more?

Check out Managing a global software development team and A wake-up call for tech managers.

Spread the Love ❤