Management for Software Engineers (Building Team Structure)
Introduction
Building a team structure is about how we get organized, it is giving every one of your team members focus. You need always someone in charge of a specific area.
A reminder of the framework verticals:
- Acquiring the Right Talents.
- Building Team Structure.
- Aligning IT Activities to the Business. (In progress)
- Managing Customer Expectations.
- Managing through Effective Communication.
- Promoting Productivity through Team Processes.
The main topics of this module:
- Why Building Roles and Responsibilities.
- Determining Skill Requirements.
- Develop and Track Skills.
- Motivate the Team.
Why Building Roles and Responsibilities
Provide more clarity for the team: clarity starts when you define the gaps/needs within the team, then you post the job with these responsibilities, and when you onboard it to the team. Eventually, this will provide clarity in all other processes like communication, hiring, and other activities.
- One role may be fulfilled by one/more persons and one person can perform one/more roles.
- While you are building the team, make sure you have two roles: one role for the IT-focused and the other role for the customer/business focused. Maybe you are a businessman and looking for a technical implementation of your idea or you’re a technical person and connected to the business somehow and you need more focus on the business side.
- “divide responsibility and no one is responsible”, W. Edwards Deming. It is a big mistake to be not clear about who is responsible for what.
Determining Skill Requirements
These skills help your team to achieve:
- Review long-term requirements, and it is important to communicate them to your team on every occasion.
- Review team members’ skills needed.
- Integrate lists and prioritize, here is an example of the technical skills list required for your team. You can develop a list of soft skills.
- Develop a plan and implement: this could be through different resources like educational portals, internal experts/seniors, self-study and etc.
- Inspect, adapt, and repeat.
Develop and Track Skills
There are three areas for you as a manager to invest in your team:
- Technical: you look at the technologies/tools/frameworks your team is using and start conduct sessions/share links and follow up with them on that.
- Communication skills, write presentations, meetings, standups, walkarounds, interviews, and interpersonal.
- Leadership Skills:
a. Delegation.
c. Communication.
d. Succession planning is a process for identifying and developing new leaders who can replace old leaders when they leave.
I personally use the skillset matrix to set and track the skills of my team in a monthly/quarterly manner. It is helping in:
- Performance evaluation and promotion processes.
- Build awareness for me as a manager to correct issues.
- Encourage self-development.
- Show manager care.
- Track progress for salaries and promotions.
- Build relationships between the whole hierarchy.
- Motivate employees.
- Handover, it helped me a lot when I was leaving Tajawal.com to easily give a clear picture of the team's capabilities.
Based on this sheet, I can invest in the team by:
- Enterprise subscription into an online portal like Safari online, Linkedin learning, etc.
- Lunch and learn: this is during lunchtime.
- Events and meetups: before the pandemic time, we were encouraging our team to attend meetups.
- Give opportunities for the potentials.
Motivate the Team
I will always remind you about these points because it is creating the momentum to set up any successful process.
How do I motivate my team:
- Setting up a clear process like onboarding, development, etc.
- Communicate the business requirements and results so they find their contribution.
- Performance evaluation that recognizes high-performants and rewards them, recognizes the low-performants, and giving you the awareness in order to skill them up.
- Invest in them, otherwise, they will ask “why do we stay?”.
- Build different communication channels between team members so they can easily exchange experiences like code reviews, pair programming, after-work activities, etc.