The definition and content of activities of the software development manager can vary widely.
You can find this position under many different names, let´s list just a few of them for illustration: software manager, software development manager, software engineering manager, head of software development, team manager, line manager (in case of hands-off position), associate director (common for huge multinational companies) and so on.
Since we are talking about managerial position there is always a part focused on people management.
Since we are talking about managerial position there is always a part focused on people management. The portion of the people management activities can vary, however it should never get under 50 percent.
These activities are always present in some form and it depends how much is the position hands-on or hands-off.
Line (people) manager
When the people management activities near to 100 percent we are talking about the position of the line manager or people manager. In software development these positions are quite rare and there is very often some slice of technical responsibilities.
From my experience the ideal number of direct reports in this position is around 25.
Companies that employs dedicated line managers have implemented matrix organization structure. That means that there are managers dedicated solely to people management and managers solely for purpose (projects). From my experience the ideal number of direct reports in this position is around 25. When less, the manager is not fully utilized, when more the manager´s tasks are slipping and sometimes important problems are not solved in time.
People management activities
Administration is indivisible part of manager´s job. There are many various tasks that have to be solved with employees every day. It can be changes in the contract or group of approvals (vacations, business trips, allocation changes, trainings etc.).
Allocation To Projects
In case that the manager does not lead projects or not all direct reports are working on his/her project, manager is responsible for allocation of direct reports on projects. In the ideal case the project should fit strong traits of the employee and help with the personal growth of the employee.
If you are not sure, don´t hire! It is extremely difficult to get rid of the bad hire.
The importance of hiring the right people cannot be higher. If you hire badly that does not mean the employee will not bring value. The bad employee will absolutely destroy effectivity. If the manager will not deal with the problem quickly, the right employees will start to leave the company. I will state only one rule for a hiring process – If you are not sure, don´t hire! It is extremely difficult to get rid of the bad hire.
people growth, coaching, mentoring
It´s the manager´s responsibility to recognize strong traits of the employee and develop them.
It´s the manager´s responsibility to recognize strong traits of the employee and develop them. Sometimes the trainings are focused on skills that your employees lack to improve them. That´s not ideal, we as managers should help with developing the strong traits and make them even stronger. With this approach we can assemble the teams in a way that members of the team complement each other with their strong traits. There is a whole book (that I reviewed here) on this topic from the Microsoft chairman of Europe Jan Muhlfeit.
Managers are responsible for finding and recommending trainings for employees. That will effectively develop the skills they need most. It can be skills that are actually needed or skills that are expected to be needed in the future.
The word effectively is bold intentionally because it happens quite often that employees are sent to the trainings that does not bring value. They are only intended to pump out the training´s budget. Then it´s a waste o money of the company and time of the employee and of the project.
Salary and bonuses
One of the most difficult tasks of the manager is salary negotiation. The manager needs to find a balance between being economical and being fair to the employees.
One of the most difficult tasks of the manager is salary negotiation. The manager needs to find a balance between being economical and being fair to the employees. There should be some salary levels widely acknowledged across the company that correspond to the seniority. The manager should be targeting the salaries near to these levels. There are often exceptions in case of the large domain knowledge of the employee or other exceptional circumstances that can justify excesses.
Bonuses should be based on the performance of the employee over some defined period of time (quarterly, yearly…). If there is a significant change in the value of the bonus in either direction, the reasons should be communicated to the employee. In case that the bonus is lowered there should be determined steps that should be followed by the employee so the bonus can get to the original level or higher.
Developer positions should be divided into several tiers and manager determines what is the seniority of the employee. It´s very dangerous to promote the employee based only on domain knowledge. The seniority should be corresponding across all projects in the company.
regular feedback and one-on-ones
One on ones are standard part of the manager´s life. When the manager is leading project the employee work on, the 1o1s should take place quite often (even once a week). Project or department issues can be discussed on these meetings. Coaching and mentoring should be also part of the meeting.
If the manager is more in a people manager role to the employee, 1o1s are usually about giving the feedback gathered from the project managers and these meetings take place much less often, often only once in a quarter.
You can read some more about one on ones in my other article on this blog.
relationships, sh*t umbrella
Manager is responsible for public relations of his/her department. Manager should maintain relations with other managers, other departments and should point on successes of his/her department or successes of specific employees in his/her department.
Manager needs to absorb the heat and only emotionless and verified information should be given as a feedback to the team.
Manager should also serve as some kind of lightning rod for problems caused by the project or people in his/her department. Manager should be able to absorb the heat and only emotionless and verified information should be given as a feedback to the team.
Technical responsibilities of Software Development Manager
This part of the job differs a lot depending on the needs of the company. This is probably the reason why there are so many different names for the similar position.
as an Architect
It´s not very common that the manager also writes code, however the code review is from time to time required even from the manager.
It happens very often that the software development manager is responsible for the high level and architectural design of the product. It´s not very common that the manager also writes code, however the code review is from time to time required even from the manager.
The result is that the interview for a software development manager consists also of coding interview and technical screening. Technical manager should definitely have an overview in the area of his/her expertise.
technical and managerial competencies
If detailed technical knowledge is required from the software development manager, the candidate will probably lack on the side of the managerial skills. It´s not easy to find a technical star that is also emphatic, skillful in communication and all the responsibilities stated in the People management section of this article.
as a project manager
Quite often the software development manager serves also as a technical project manager. It´s quite logic, since synergy of his/her managerial and technical skills can be used in these positions.