I truly believe that in order to be a great manager you need to give a damn and have your morals in check. From personal and other people's experience I started to see some patterns of wrong and toxic traits of some managers and uplifting and empowering traits of great managers, which I like to call leaders. In no particular order, below you will find the main skills of the good ones:
1. They have a backbone and act like professionals
This mean that they work with passion, calm and logic and take into consideration that people are not resources. They are people payed to work for someone else's dream. Exactly like them. People are renting their time and skills to a company for money. When they work, they are trustworthy, hard working, they persevere to the greater good of the product (a.k.a the company) and the other team members whilst keeping in mind their own mental health and well being.
2. They don't pick favorites: public or private
This is such a demoralizing action for anyone in the team, maybe except the favored ones. Great managers know they must keep their very subjective opinion for themselves. The idea is to keep a group of people together, not decouple them.
3. They communicate openly and clearly with follow up actions for both sides
They document discussions for better understanding from both sides (and possible audit) what was talked upon in a work gathering (this could be a scheduled meeting, an ad-hoc meeting). If not, they could say really wild stuff that are inappropriate and privacy invading.
This skill is a gateway to building trust inside the team.
4. They understand development deadlines should not be business deadlines and help the team accordingly
They have their own metrics in check but they understand that development is a process and one estimate from a 2 minute check on a future feature specs cannot represent a hard deadline for business. Usually things tend to change, this is a dynamic environment and putting extra pressure on the team is unnecessary.
Great managers should want stable, well crafted solutions not quick fixes that create a lot more bugs.
5. They don't use cheesy phrases to try to impress employees
This goes without saying that people don't like fake people. Naturally we won't search for them in our personal lives and we definitely won't search for them in the professional world.
Great managers are authentic, they are good communicators with no-bullshit attitude. Their actions are accompanied with words.
6. They take vacations
It's important to have a leader that shows that it's normal to take vacations during the year, that doesn't send/reply to emails after working hours. This sets healthy boundaries for every person in the team and expresses a solid business state.
7. They respect everyone's time and don't create meetings just to bill hours
Great managers know their responsibilities and attributes and don't need to fill up their billing time with ' unrequested, no conclusion in sight meetings' where they discuss random things without documenting anything.
Great managers have a plan on what is to be discussed in a meeting and it shares it with the rest of the people invited at least a few hours ahead, as to allow possible needed preparations. This means the manager respects and values everyone's time.
Without the above, these meetings keep people away from their work and that affects the possible already existing estimates and it gives a feeling of "this is pointless and wasted time".
8. They work towards empowering the team
Great managers allow people to be different as long as they agree with the common ground rules at work. They are kind and respect every person and their choices. They have no issues if a team member identifies differently from the old norm, they support flexible working hours and support people into their career path. They understand that people will quit and others will join etc. and they want to be a stepping stone that people can reference back as a good place to work for. They actually allow employees to train their weaknesses into becoming strengths and they celebrate the journey together.
They try to educate others that a team is not "the guys" and it can look however it does. People can come from different backgrounds and they ALL have something to contribute with. People tend to stay where they are welcomed, trained, supported and given great compensation.
9. They allow or create a psychological safe work place
Great managers set and protect the standard for the team culture, the inclusiveness and diversity are not just marketing words for them. They first lead by example and create the system to support this.
By example, they could be allowing people to have flexible hours or remote work. Maybe one team member needs to visit the doctor in the morning and would prefer not to discuss private matters with everyone at work that day and starting one hour later would fix this. Maybe one team members' kid has a minor cold, but the parent can still work and not take a medical leave. Working remote will allow this situation to happen without friction.
10. They don't give the abusers in the team a platform, they stop them
Great managers support and protect the team members and promptly reacts to any disrespectful or toxic situations. They communicate clearly the boundaries and the conduct that should be followed. They create the basis for a sharing knowledge platform (if there is none) and proactively add content to it.
No one needs any fake rock starts or even real ones in a team to keep people down and make them feel horrible. If those persons are disrespectful (especially without feeling remorse) towards any other person in the team or outside it, they should be kept in check a.s.a.p.
If the idea of loosing "the one person that knows everything in the project" freaks you out, then the project has more problems than you thought.
Generally, that shouldn't be true. The other team members are adults with a high IQ and they were hired for a reason, so they will find ways to finish tasks in the project.
Open minded developers will always read new materials, try new techniques and are opened to share with anyone asking for help and most important, they are willing to be uncomfortable and vulnerable in their professional relationships because they understand that everyone can benefit and learn in a non stressful situation. A senior can and sometimes should learn from a new hire or a junior developer. There is so much information out there that it's impossible to know everything.
I hope this myth of knowing-all developer disappears the same way it appeared, by people's choice.
11. They don't use personal gatherings to drill their employees
Great managers let their team members live their own life in peace and they live their own life as well.
12. They reward and publicly acknowledge employees work victories
Great managers don't let employees hard work go unnoticed, especially knowing that statistically male employees are more "load and visible" and others are less like that. Publicly praising a help or a gain from an employee that in the end actually helps the team, should be done. This should be taken into consideration at reviews as well. If you don't, don't be amazed if people write down their achievements and explain them again on review. How else would they be seen? And yes, their achievement is the team achievement, but the team does not receive one global salary, instead each member get's remunerated separately.
13. They explain how to grow in the company, what are the requirements for a possible promotion
You know a manager wants to support you in your career and in your company by being clear about company rules/requirements for an advancement. They don't hinder your growth but instead do their best to help you become better and so the company can profit from this, as well as you, by more money and freedom.
We are all human and so we all make mistakes and in the same time we can all be better kinder and wiser. Let's do the latter more.