Originally published on RubyLearning.com:
At some point of time in your career, you have to decide if you want to continue on technical path or to take up a management role. Imagine that you have taken up a management role; how would your life look like?
Foundations remain the same for technical and management tracks. Here is what will not change:
1. Sound technical background: Many successful project managers have been excellent technical developers early in their careers. Strong technical skills go a long way in identifying technology risks in projects. If you have a sound foundation of technical skills, you have equal chances of taking up either of these career paths.
2. Using software engineering techniques in daily life: Delivering good code in timely manner requires understanding of standard coding practices, defect management system, version control system and timesheet systems. It may sound obvious, but using the basic software engineering techniques ensures predictable delivery. Whatever path you choose, make sure you have in-depth knowledge of software engineering techniques.
What will change when you get into manager or lead role? Seven secrets nobody told you:
1. Developer has to focus on his/her own tasks. When you become a manager, you will need to get the tasks done by the team members. You will need to allocate work to your team members based on their abilities. You will have to identify strengths and weaknesses of each team member. You will also give due consideration to their aspirations.
As a manager, you will need to allocate tasks according to team members’ strengths to maximize output.
2. While completing the assigned work, a team member may be stuck.Manager listens to him/her and analyses the situation. The team member may have adopted an unconventional approach to complete the task. This approach may be vastly different from the approach you would have taken.
In manager's role, you will need to analyze from team member's perspective.
3. Manager plans the work based on overall strategy of solving a problem. Based on the strategy,s/he sets priorities. Prioritizing is deciding what is important over what is less important.
Manager decides the strategy to obtain a solution whereas developer focuses on completing the work assigned to him. Be prepared to take the bigger picture into account in manager’s role.
4. Team members may need protection from conflicting power centers within the organization. Managers who can provide ‘air cover’ get their team’s respect.
Manager defends team members, so that they can focus on their work. This is a critical leadership trait to succeed as a manager.
5. Team members like to work with a manager from whom they can learn. Conscious effort to share knowledge motivates the team.
As a manager, you will have to share your knowledge and let the team learn from you.
6. Manager conducts meetings to communicate various messages. He writes to different stakeholders to communicate the task status. Speaking and writing may seem basic skills, but using these skills effectively is very important for a manager.
You have to hone your communication skills to become an effective manager.
7. Manager does not develop code or test it. In some cases,manager may take up some part of team member’s work. Ultimately, a manager’s success depends on his team members completing their work. Highly motivated and happy team members complete their work in time.
You will need to motivate team members to complete their assigned work.
To summarize the seven secrets,
To be an effective manager, you must
1. Allocate work based on abilities of team member.
2. Analyze issues from team member’s perspective.
3. Be prepared to take the bigger picture into account in manager’s role.
4. Defend your team as your team’s leader.
5. Let the team learn from you.
6. Communicate with stakeholders effectively.7. Motivate the team to get the best out of them.'