The saying goes, “What got you here, won’t get you there”. This is especially true for leaders in technical fields like software engineering. It means you probably have the hard skills (coding, automation, design, coordination, etc.) and logical problem solving that helped you be successful as an individual contributor. Now you are in leadership and probably finding those skills are not helping you solve the same problems. Here are a few lessons I learned last week of the softer skilled sort.
1) Unmet expectations are the root cause of upset people
If you are dealing with friction with someone at work (or helping 2 people in your team deal with their friction) then your best option is to look for the unmet expectation. Maybe they expected to be treated with more respect, or that you would be on time for the meeting, or that something would be done more quickly. Try to determine what the unmet expectation was and help address it and you will remove the source of the problem. This alone won’t solve everything but it will help resolve the issue.
2) If you impact someone else, then at least inform them, and ideally engage them
This is easiest to think about using some examples. Are you waiting on something from another person in order to get your job done and it is late but you haven’t heard anything? Do you depend on a process controlled by someone else to get your job done? Have you been pulled into a meeting beyond your control without knowing why? Do you get assigned to projects without having a say? All of these are examples of being impacted by the decisions of someone else. This is pretty common and probably pretty annoying for you (or whomever is on the receiving end). If you are the one causing the impact to someone else, try to always keep them informed. If there is flexibility, then engage them in the decision making about it (even if you only ask for their feedback). You would want this if you were in their place so treat others like you want to be treated.
3) Good communication is the key to everything
I’ve come to realize that most relationship and work challenges are caused by poor communication. Did servers go down during a recent release because the database configuration was mismatched between prod and dev? Bad communication. Did a recent feature get built differently than customers wanted? Bad communication. Are users angry because a bug was released that the testers knew about? Bad communication. Was someone surprised by bad news that they should have been aware of? I think you get it… The simplest step to improving communication is to simply take the extra time to do it. It’s not a magic bullet, but most poor communication happens because we didn’t bother taking the extra time to communicate for understanding. Try asking people to echo things back when you talk to them this week and do them the favor of doing the same. You won’t regret spending some extra time on communication but you will regret not doing it when things go wrong.