When I was working in IT for investment banks, these opportunities typically came around during year five for a senior programmer. Even then, it’s typically a one-shot deal. Once you lose the chance, it may not come around again (at least not with the same team).

A lot of my colleagues — ones that made management in their tenth year after being on track for management in year five — weren’t good managers. This inability to shine as good managers often caused them to bounce from company to company looking for work.

Programmers with good soft skills are better suited for leadership. Don’t waste your time being a mediocre manager. Be a good manager for your team — these efforts will pay off throughout your entire career.

People will know and respect you for your leadership.

Set yourself up for success and develop the skills of a good technical manager.

1. Be a good listener

Listening should be active. You should hear the other person’s point of view and understand where they’re coming from. This is empathy. If you don’t understand the person’s point of view, you need to ask more questions.

A productive conversation isn’t a one-way street.

It’s when two people come away with a solid understanding of each other’s perspective. Actively listening and responding to the person are the first two steps to having a productive conversation. Whenever possible, you should give feedback (like restating what you’ve heard) to validate your understanding of the other person.

2. Be a good team player

Ideally, companies shouldn’t give every all-star programmer a management opportunity. They should, however, give all-star programmers with good leadership qualities and good soft skills management opportunities.

Even all-star programmers have to be good team players.

In most sports (if you watch), the ball is passed from player to player. A star doesn’t shine without the support of their team. The all-star programmer has to be grounded enough to regulate their ego for the benefit of the team.

3. Have patience

This one’s obvious. But, in real life, most people have trouble practicing patience. When your project is delayed, you were up all night, and your entire team is having a crisis with the technical design in the middle of the project, it’s easy to lose your patience.

Patience is a skill that can be practiced every day. This is often why good parents make good managers. It’s simply that they’ve had lots of practice being patient with their children. People who have been through war at their jobs, like managing crises, or people in the military are also great at being patient. They practice patience daily by enduring extraordinary situations.

4. Have integrity

With technology quickly advancing, the job market changing just as fast, and new startups sprouting up every day, it’s easy to lose sight of integrity. When I talk about integrity, I’m talking about taking responsibility for the people on your team, for the projects you work on, and for the company you work for. Personal integrity includes being truthful, transparent, and genuine.

Technical integrity is critically important.

In this era of increased technological innovation, doing the right thing is difficult, if at all possible. Often, projects have constraints that make it impossible for you to choose to do the right thing. It’s often up to the technical managers to push back and set technical limitations.

Business managers may not understand there are technical limitations.

You can’t compromise the data integrity of the entire system to give the customers one little feature. As a technical manager, you have to speak up and draw the line. It’s your job to preserve the technical integrity of the system or software that your team develops by setting and communicating technical limits and advocating for best practices.

5. Have compassion

Your star programmer’s grandmother just passed away and you’re in a critical part of the project that requires your star programmer.

Do you let your programmer take a few days off to process this loss?

A compassionate manager won’t think twice about letting the programmer take off. Your star programmer is a person with emotional needs and is no good to the team in mourning. Let your programmer mourn their loss.

Step up as a leader and distribute the work amongst the team. Motivate them to take on the work and support their coworker during this difficult time.

6. See the big picture

Programmers are prone to tunnel vision. This is largely due to the nature of a programmer’s work — large amounts of time spent on minute details. As a manager, it’s critical to see the big picture.

Seeing the big picture means seeing the business impact of projects.

Seeing the big picture means knowing how your project aligns with other projects inside your company or inside your division.

Seeing the big picture means visualizing all the components and the interrelationships of the components in your projects.

Seeing the big picture also means seeing how your project will impact your clients outside of the company and the industry.

If you were asked to draw a picture of what your project means, what would that picture look like? If you were asked to draw a picture of your team in relation to other teams in your company or division, what would the picture look like?

7. Delegate tasks

Micromanaging is the hallmark of an inexperienced manager. It reflects insecurity and the need for control. On your way to being a good manager, you may feel like you need to micromanage tasks. That’s OK. You need tasks to be done. Even if you have a project manager in charge, you still want to know the project will be completed on time.

Technology projects are notorious for their delays. As a technical manager, you need to practice delegating (even if you have new team members). Your team members need to practice accepting tasks and completing them on time. Delegating will feel much easier the more you practice.

8. Provide organization and support

A good technical manager is a facilitator. This type of manager knows it’s not about them — it’s about each member of the team and the team as a whole. To bring out the team’s best, the manager must be organized and seek support from all levels within the company, all while uplifting every member of the team.

At the same time, the technical manager does the grunt work of administrative duties so team members can focus on their project-related tasks. In some ways, a good technical manager sacrifices their time without saying a word and then turns around and applauds everyone on the team.

9. Provide unbiased, helpful feedback

A good technical manager isn’t a friend. A good technical manager is a manager first, a mentor second, and a teammate third. This is why feedback must be unbiased. Ideally, a good technical manager solicits feedback from other members of the team in addition to theirs.

To balance relationships within the team, a good technical manager must be unbiased and open-minded (as much as possible). At the same time, feedback must be helpful to the person. This is key in mentorship. If you can’t say something helpful, then don’t say anything at all. The ultimate goal of feedback is to help the person improve their performance.

Another type of unbiased feedback is about technology. Technical managers shouldn’t be attached to certain technologies. The decisions of picking which technology to use, what programming language to use, and which vendor to use should be based on careful analysis of the pros and cons.

10. Provide technical expertise

A technical manager must have good technical expertise. It’s not enough to know how to do things. It’s critical to know why things are done a certain way. A technical manager must have a good foundation in basic computer science knowledge that will enable effective coding and design.

Technical managers are not required to have a computer science degree but they often do. I’ve seen very good technical managers, ones without a computer science degree, that have acquired critical computer science knowledge in other ways. The knowledge and the foundation is a must, but the degree is secondary.

It helps if the technical manager has been through the role of a technical leader or architecture designer on the same team. Often, these managers are technical leaders within the company and in the open-source community.

11. Provide business expertise

Ideally, a good technical manager will master the business knowledge to lead teams successfully through projects. Often, programmers will look to the technical manager to ask questions about the business. If you have a project manager on hand for such questions, then it’s less critical for the technical manager to possess business skills. But, even then, the technical manager must understand the big picture related to the business.

12. Have an open mind

Programmers can be single-minded. This is because programmers are trying to solve difficult intellectual problems that require such single-mindedness. A good technical manager knows when to step back. They must maintain an open mind to balance relationships, opinions, and egos on the team. It helps if the technical manager is a creative member of the team. This prevents the technical manager from having a hard time switching from single-mindedness to open-mindedness.

13. Make firm decisions in a timely fashion

For a technical manager, retaining a degree of objectivity while making decisions is important. That’s why having a process in place for making such decisions is necessary. A great training task for technical managers is to develop a decision-making process and practice making decisions with this process.

Once the manager is familiar with their decision-making process, then they can rely on the decisions made — these decisions will be firm. This means that the manager can take responsibility for these decisions because adequate evidence and reasoning were used to support the decisions. In time, and with practice, a good technical manager can make these decisions more swiftly.

14. Take responsibility

Have you ever met a manager that makes team members responsible for the decisions they made? I have. Some technical managers justify this method of placing blame on the company culture of “blame and shame”.

Instead of this corporate culture, set a good example by taking responsibility for your decisions. If you use a decision-making process grounded in evidence and logical thinking, then you’ll be able to take responsibility (even for the failures, delays, and other unforeseen circumstances). You’re the one who can set the proper example of how to take responsibility for your team.

15. Be a master learner

Before demanding that the programmers on your team be master learners, a technical manager must be a master learner. Chances are, this goes without saying. An experienced technical manager will probably have around ten years of programming experience, this likely means they’re already a master learner.

16. Have trust

Trust does not happen overnight. Just because you delegate tasks and your team members complete these tasks, doesn’t mean they trust you. This also doesn’t mean you can trust them. In any relationship, trust between team members is built over the years.

Team building exercises are helpful to facilitate trust-building. As a technical manager, you need to actively pursue team-building when working on projects. This can include sharing expertise, overcoming difficult problems, and the occasional team outing. However, this does not include spying or invasion of a team member’s privacy. (These actions will likely take away any trust that’s been built.)

17. Have charisma

A good technical manager is a cheerleader for the team. A good cheerleader possesses a certain degree of charisma. Believe it or not, a good sense of humor helps manage a technical team. When there are hurdles to overcome, cracking a joke to break the ice, then moving the team to solve a problem requires charisma.

18. Advocate for members of the team

A good technical manager should advocate for every member of the team. When managers throw team members under the bus, they lose respect in a big way. Once team members lose respect for their technical manager, it takes a long time to regain this respect. This is why firing or laying off people is hard for a good technical manager.

19. Balance the team

One of the most important jobs of a good technical manager is to balance the team’s egos. In a highly technical team, experts are coming from different backgrounds and each person may be highly respected in their field — this is why balancing the egos of each team is so important.

The technical manager’s ability to diffuse situations when team members go head to head on technical issues is a must. Designs, resources, and project timelines have to be balanced often.

There’s always a give and take.

Sometimes sacrifices must be made for the good of the project. In these cases, the technical manager must be able to balance the egos of those team members involved and explain why decisions were made. It’s critical to be a technical manager that every expert respects.

20. Create and follow through on a vision

A good technical manager has a vision. What would you like your team to accomplish in a year, two years, or five years? How would you like to steer this ship forward while aligning it with company goals?

This technical manager will understand the strengths and weaknesses of the team. Then, the technical manager will build a vision for the team to capitalize on the team’s strength. Often, this vision is repeatedly presented to team members during projects and transitions between projects. This vision helps to unite team members and allow them to see the big picture.

21. Be a good mentor

Ideally, a manager has been a mentor to their peers before becoming a technical manager. With new managers, there’s always a period where team members are learning to work with and trust them, especially if the manager was brought in from another company. This process can be shortened by promoting someone who is already mentoring team members within the same team.

22. Understand the business

Acquiring business skills can be difficult and it doesn’t happen overnight. It takes years of working on projects for the same team or company and depends on the complexity of the business knowledge. Sometimes, the technical manager goes through formal training to become proficient in this knowledge. A technical manager will need to translate technical concepts for business managers to understand. Sometimes, the technical manager might need to understand the business better than the business manager.

23. Be good at pitching

A good technical manager has to be convincing. Often, a good technical manager must make a case for how things are done. Why are certain design decisions made? Why is a technical decision made in a certain way? Why should we automate this part of the system? Why should we embark on a software project for this side of the business?

Each pitch to upper management must be made with clarity. It should add value (sometimes exponentially) for the business. This type of persuasive communication can only be practiced by making pitches as often as possible.

24. Know when to exercise different management styles

Every technical manager has their own management style. Good technical managers adapt their management style for the good of each team member. This technical manager can use different strategies to deal with vastly different personalities. The manager may use one management style with the entire team and other styles to fit the various personalities on the team. In any relationship, there’s a give and take — the leader must meet team members halfway.

25. Cope with stressful situations

Have you ever seen a technical manager immensely stressed about a given situation but acts as if nothing’s happening? I have seen this. At one time, I was also this manager. I can tell you that being able to keep a cool head through stressful situations is not easy. It takes years of practice to withstand the pressures that the business demands. But, as a technical manager, you have seen the outcomes and can gauge the chances of success. You probably also have devised a fallback plan. With good planning, you can take away the stress from your team members, absorb the immediate shock, and steer your team members on a course towards solutions.

26. Network for the team

Often, technical managers go to networking events with business managers. Managing up is as important as managing down. Networking provides opportunities to acquire projects, resources, or knowledge for your team. It might seem like it’s for personal gain but a good technical manager will network with people that can contribute to their vision of the team.

27. Have a good instinct

A good technical manager has certain instincts about people, technology, and the business. These types of instinct come with experience. Often, a good technical manager will make an effort to hone these instincts by taking risks. In time, the technical manager will be able to make swift decisions relying on instinct — these instincts help to supplement decisions that require evidence and logic.

28. Have an approachable demeanor

A good technical manager is someone with an open-door policy. Team members must feel free to approach this manager for guidance. This technical manager doesn’t have to hold the team member’s hands in everyday tasks but has an approachable demeanor so that even junior members of the team feel comfortable approaching them.

29. Understand that perception is the reality

A good technical manager is someone who understands that for bystanders who are watching, perception is the reality. This also goes for projects. The technical manager should be able to deliver issues to the business with an optimistic tone.

This manager should be able to create a vision of the project that will gain trust from the business. That means managing the right expectations for both the business as well as the technical team. An experienced technical manager will scrutinize important communication to ensure that the right perceptions are delivered every time to business managers, team members, and project leaders.

30. Have a positive attitude and a solutions mindset

A good technical manager is someone who’s been around the block. This means that this manager has seen big problems, dealt with them, and came out on the other end. When there are big problems, big business changes, and huge technical hurdles, the technical manager will still smile while investigating the solutions. This manager will keep a positive attitude when dealing with all types of problems.

In times of low morale, the technical manager will be able to motivate their team to come up with solutions. Under business constraints, the technical manager will motivate the business to work around constraints to enable the technology team to work at their best.

Creative problem solving coupled with a positive attitude will make any technical manager great!