Why software engineers are grumpy

Dear new developer,

I thought that this post, “The care and feeding of software engineers (or, why engineers are grumpy)”, from 2012 was still relevant today. It’s a long one, so I won’t excerpt all the interesting parts, but this really resonated with me:

Both engineers and product managers tend to think, incorrectly, that product specifications or requirements are equivalent to the furniture manual from Ikea. In reality, these documents rarely contain enough information to build an actual thing. They’re usually just the starting point. And that presents a unique problem to the engineer.

The author explores the metaphor of the house, and how you really should fully define such a structure before you start building it. And yet, sometimes software is “just started” and defined and re-defined as needed changes are discovered

The author doesn’t let software engineers off the hook either:

Software engineers are put into a difficult position every day, but we are not victims even though those of us who are more melodramatic tend to act that way. Part of our grumpiness actually comes from within, with something that for some reason is deeply ingrained in the majority of software engineers. We have a tragic flaw and that flaw is that we overestimate our knowledge and abilities..

In addition to all the complaints engineers have, it also has a few suggestions about ways to help (including appreciate the engineer’s effort and cross functional training). Well worth a read as someone who either works with software engineers or as someone who is one.

Sincerely,

Dan

Show gratitude

Dear new developer,

I have found gratitude to be an invaluable part of my software development career.

First, being grateful makes me happier. It works for others too. When I get frustrated with someone at work, or some technology that is poorly documented or doesn’t do just want I want, taking a step back and being thankful for my position is just the antidote. It gives me perspective that software development is an awesome job compared to just about any others. Here’s a short list of how software development is awesome:

  • it is lucrative
  • there is a low barrier to entry
  • there are varied challenges
  • it is a broad industry
  • many jobs provide autonomy
  • remote work is a reality for many
  • there is an opportunity for continuous learning
  • developers are in high demand
  • workers are treated well (I know how health care workers, some with master’s degrees, are treated)

When I think about that, it makes the normal frustrations a bit easier to handle.

Showing gratitude to other team members also reminds me that everything is a team effort. It also has the side effect of making a job more fun, and making it easier to communicate in the future. Every team member has something to teach you.

Finally, being grateful makes me more fun to be around. Given roughly equal skills, who would you rather work with? A grumpy co-worker who is sullen and unhappy, or one who regularly shows appreciation for other team members? Who do you think will be remembered more fondly years later?

There is no need to be obsequious. You don’t need to over-thank anyone who helps you or buy people gifts. A simple “thank you” or mentioning your gratitude for the assistance to another team member in passing, done every day or two, will work wonders over the long haul. More tips about gratitude:

  • be professional. Make it short and sweet.
  • be specific: “thanks for the help with the XYZ component yesterday” is far better than “thanks for being you”
  • spread it around, including peers and people in other departments.

Remember, it’s good for you too, not just your career.

Sincerely,

Dan