Friday, August 05, 2011

What to look for in a manager

After having worked with a few people, I have narrowed down the skills needed by a technical manager down to two qualities. While these are observations from software engineering and business analysis, the lessons hold for other technical professions. Here are the two qualities.
  1. Provide creative space. This is essential for technical areas like software development where creativity and risk-taking are essential. After confirming a general direction, the manager should be willing to let the employee explore and learn from mistakes. An excessive amount of top-down direction is frustrating and demeaning to a capable employee. This requires technical skill in the manager, so he can set general direction and realize the amount of work involved.  Providing creative space also means ensuring that the employee has a distraction-free atmosphere, and meetings are kept to a minimum. 

    Without the freedom to make mistakes, a technical employee feels bored, demotivated, and does all his creative work elsewhere (at home, or with friends).

  2. Reward technical achievement. Many projects look deceptively simple from the outside, but require significant work to be successful. A person who ensures that technical work gets rewarded makes an excellent manager. This is critical when the employee's achievement might not yield immediate benefit: large-scale re-factoring of code leads to immense long-term gains and short-term discomfort. Therefore, strong managers understand the benefit of code hygiene and reward engineers for improving the quality of the system.

    Without recognition for hard work, employees settle for low-risk high-visibility projects. Over time, challenging technical work dries up, since nobody is willing to solve real problems. Once this happens, the team loses the ability to hire fresh talent, because they have no interesting projects. Also, a manager who either cannot recognize technical achievement or does not spend time rewarding achievement is seen as spineless. Such a manager quickly loses respect among skilled engineers.

In the best teams, recognition flows downward and blame flows upward. A good manager shields a well-functioning team from missed deadlines and temporary failure. And when things work, he highlights individual engineers for their contributions and ensures recognition for them. Sounds too good to be true? Managers like this do exist.

Truly exceptional managers inspire confidence and motivate their employees. Work is fun because employees are interested in the problems they are solving.

You can judge a team's technical manager approximately by assessing two things.

  1. Quality of technical work: quality of code, and challenge in existing projects. Excellent technical work speaks for itself. It shows that the team values technical achievement and rewards it.
  2. Amount of time employees spend dealing with fluff: number of hours spent in non-technical meetings is a great estimate. Any manager who frees his employees' time values their time and their contribution.