Everyone is different
If there’s a single unavoidable truth you have to accept in managing software engineers, it’s this: everyone is different.
It’s a simple rule that is too often ignored by managers, who by nature lean towards creating systems that impose blanket policies across organizations. It’s hard to blame them —when you manage multiple people, it’s just more efficient from the manager’s perspective to have a single process or policy in place to deal with situations. Giving everyone a 10 percent raise is easier than making decisions on individual performances. Saying no to all remote work is simpler than figuring out who can work effectively remotely vs. who can’t.
It’s understandable — having to treat everyone according to what works for them takes a tremendous amount of time and is a tiring effort. Having shortcuts that apply to everyone makes the job of managing people feel easier. After all, if it fits for one group or person, it should fit for everyone, right?
Yet, it is precisely this kind of thinking that leads to ineffective and potentially dysfunctional teams. People are too different in their motivations, desires, strengths, weaknesses, and talents for any one system to cover all potential cases satisfactorily. To ignore the fact that people are unique individuals is to ignore the reality of managing software engineers (and people in general). When you ignore reality, it’s delusion, and you begin working within a realm where success happens only by accident.
Take, for example, how differently people respond to something as simple as a thank you. Some people like to be publicly commended for their extra efforts. These are people who feed off of recognition and acknowledgement. A public ceremony thanking them might be just the thing they need to stay motivated and feeling appreciated.
However, others may prefer to work behind the curtain and shy away from the spotlight, instead gaining energy from being the invisible hand of a project. For these individuals, thanking them in private and giving them a personal token of appreciation will go farther than a public ceremony, which they might even view negatively as pompous or insincere.
How would a blanket approach to saying “thank you” make both groups happy? It can’t. To never acknowledge those who like to be acknowledged will remove a significant motivator for their actions. To always publicly acknowledge someone who dislikes being in the spotlight can potentially be providing negative feedback to desired actions. In an ideal world, everyone responds in the same way, but in reality, people are individuals, and their differences affect every single interaction with them.
Managers still try to flatten individual differences, often in the interest of fairness or equality. However, reality is messy: situations arise that aren’t covered by the blanket policies and procedures. Sometimes fairness isn’t equal, and sometimes equality isn’t fair. Not recognizing this is simply poor management.
Some managers try to use blanket policies with exceptions built in — that’s a cop-out. Over time, the buildup of exceptions and cases whose original reasons and intentions were long forgotten will eventually turn a once agile organization into a lumbering, policy-driven behemoth.
Knowledge workers bound by policies whose reasons don’t even exist anymore often feel stifled and constrained. It’s not something you want people in an inherently creative field to feel. Having guidelines is important, but the ability to move freely within those rules is also critical to successful engineering.
Talented employees who aren’t happy will leave — the market will gladly take them from you and pay them more. The ones that remain are often those who can’t or won’t leave —these are often those without other job prospects due to a lack of talent or opportunity. You may get lucky and have a talented engineer who by chance has a reason for staying despite your company. However, you can’t sustain a business purely off of this chance — even casinos stack the deck to ensure they succeed.
Management principles should reflect the reality of managing software engineers, not the ideal. Treat people as the individuals they are. Identify their strengths and weaknesses. Take the time to discover what gets them up in the morning and figure out what keeps them awake at night. Knowing these is a part of your job as a manager, and understanding how each individual member of your team acts and reacts will allow you to build personalized strategies to help them succeed both personally and professionally.
It’s not an easy task. It takes a lot of work and effort to dig down into the details and figure out what they mean. However, in the end it is absolutely worth it. The success of your employees will tie in directly with the success of your company — if your employees are happy, they’ll work with you for a long time to come, and both the company and the employee will derive significant value from the relationship.