1. “Are we on track?” I never know how exactly to respond to this. Maybe we’re “on track” right now to hit the deadline, but what if something happens? We could easily be off track any minute. I don’t want to commit to something that I’m not completely confident in.
2. “Sorry, but we committed to this deadline.” All programmers hate deadlines. The problems that we deal with can be very complex, so it’s often not helpful to commit to an arbitrary date.
3. “You can cut corners if it’s necessary.” Thanks for giving me permission to move faster. But as you know, I wouldn’t be in this position if you hadn’t made us agree to such an unrealistic and arbitrary deadline.
4. “There are bugs in the code.”because you asked me to cut corners.
5. “I know I’m not supposed to do this, but could you quickly help out with X?” People who aren’t product managers sometimes try to go around the system to get one thing done. I’m a nice guy and like to help out, but this just adds more work to my plate and makes everyone else less happy.
6. “Sorry to interrupt you, just had a quick question.” It takes programmers about 30 minutes to get in the groove, so breaking for 1 minute to help someone else get what they need can actually set me back a half hour.
7. *Taps me on the shoulder* If you sneak up behind a programmer who is in the zone and tap them on the shoulder, you could initiate a flight or fight response. It’s physically jarring and dangerous for all parties involved.
8. “Not sure if I fully understand the problem, but how about we do this…” It’s impossible to propose a credible solution to a problem that you don’t understand. Programmers are problem-solvers, so they appreciate it if you take the time to dive into the problem before offering a potential solve.
9. “My heart tells me that we should…” It’s a programmer’s job to make rational, fact-based decisions. So it’s upsetting when emotion becomes part of the decision-making process.
10. “This should be easy.” Fixing problems with code is never as easy as it seems.
11. “I need a status update” If the client’s site is down, and it’s my job to pull it up, I’m clearly in a high-stress situation and doing everything I can to fix the problem. I understand the need to keep the client updated, but if a PM interrupts me to ask about the status, they’re actively preventing the problem from being solved.
12. “Please A/B test the size of this button.” I’m all about testing stuff so that we can learn. But is it really worth a day’s work to test an 80 pixel button vs an 85 pixel button?
13. “But it’s just a checkbox!” Oh man. One time, this PM decided that we needed to add a checkbox during the last stage of a project. He framed it up as an “easy add-on” and clearly didn’t have much respect for the complexity involved. This was frustrating.
14. “What happened? I thought we were ready to launch.” Often, you think you’re ready to go, only to realize that there is a show-stopping bug (like having 1-2 characters off) that will set you back a few days. It happens, and when it does it shouldn’t be treated as a huge surprise.
15. “I know it’s late in the game, but we need to change X, Y and Z.” There’s nothing more demoralizing than requirements that constantly change.
16. “I have this great idea. If you build it, I’ll give you X% in my company.”Programmers are not “idea people.” We’re executors. We tend to see far more value in the execution than the idea, so the best way to gain our respect is to build the MVP of your idea yourself. If you do that, then I’m interested.
17. “This isn’t what I wanted.” General, negative feedback doesn’t help solve the problem., I need specific points in order to make the necessary changes to give you what you want.
18. “C’mon man. It’s Friday. Let’s play some ping pong.” Sometimes, programmers love this. But other times, I’d rather just finish shipping the feature that you’re asking me ship.
19. “We need you to work the weekend.” I only have to work the weekend because I spent hours playing ping pong with you instead of actually working.
Programmers aren’t all that different from anyone else. We appreciate it when people do 3 key things:
- Respect the complexity of our work
- Provide us enough time to get it done
- Give us the space we need to do our best
Most non-programmers understand all of this, and I’ve enjoyed working with the majority of the non-technical people that I’ve come across during my career.
So, what’s the best way to make sure that you don’t frustrate a programmer? Just be a reasonable, respectful human being. It’s usually that simple.