This is a response to Sam Kottler’s idea that “frustratable” software engineers are more likely to produce good software.

Sam’s right. Good software is “born out of annoyance.” Good software should destroy inefficiencies. Good software should make your life easier. It should be a gift.

However – as a manager – I have an answer as to why Sam’s “never heard any hiring manager or CTO set out to hire people specifically because of the fact that they get frustrated.” It’s because no one wants to be around people who get frustrated. Sure, some great things can come from someone’s negative energy, but negative energy is toxic and can poison a team.

Instead, I look for smart yet lazy people. I got this idea from one of my grad school instructors, Alexander Zak, who drew the above graph one day in class. It’s a simple framework that makes two non-obvious points:

  1. Your greatest liability is not a stupid and lazy employee. You obviously don’t want to hire someone who is stupid and lazy, but your greatest risk comes from people who will eagerly perform without thinking because they think hard work is virtuous per se. These are the people who waste everyone’s time building solutions to things that aren’t problems.
  2. Sure, it’s good to hire plenty of smart and hardworking people, but your superstars will be smart people whose work ethic isn’t really an ethic – they’re just trying to have fun. They’re smart enough to recognize which problems need to be solved and their selfish desire to work on interesting problems spurs them to find the most efficient solution possible to any frustration.

Lazy certainly isn’t the best word to describe this person. Perhaps we should say “smart person who knows what they’d rather be doing.” But my point remains: no one wants to be around people who get frustrated easily. Everyone gets frustrated. Instead, look for people who can identify problems worth solving and will eagerly grind through them because they’ve got better things to do.