CTO Insights #1 with Christian Longberg— “Processes stop people from being creative”
|
|
It seems to me that this issue has been discussed so many times that there should be no more questions left. However, I still hear doubts about whether a team needs a team leader (TL) or a scrum master (SM), and whether a project needs a project manager (PM).
I think the problem is that different companies understand these roles differently. Here, I want to describe my understanding of them.
As a rule, a software project will involve several teams. Division into teams may be conducted according to functionality (teams of developers, quality assurance team, etc.), location (in-house or offshore teams), or other factors. Each team needs a TL, who should be the most experienced member able to steer the team, inspire team members, and prompt their self-education and self-development. The TL is responsible for the project’s development and for the team’s efficiency; he/she takes on team members and distributes tasks among them.
The core part of the TL’s work is to oversee the project, coordinate and supervise everyday teamwork, and make sure motivation and performance levels are sufficient. Though the TL and the SM certainly have different roles and the scrum methodology doesn’t approve of combining two roles by one person, I feel that this combination can sometimes be very useful. An SM who is simultaneously a TL receives power in addition to his or her own responsibilities. However, this is not a universal rule: much depends on the situation at hand.
I decided to mention the SM role just because the scrum methodology is widely used. An SM is only required in scrum processes.He/she is responsible for conforming to scrum principles, and guiding the team on how to use scrum practices and get the most out of self-organization. The SM should build a trusting and safe environment in which discussion, decision making, and conflict resolution proceed as smoothly as possible.
However, an SM is not a manager. He/she is a link between the product owner and the team. The SM helps the product owner understand how to effectively manage the team’s work by using the product backlog, planning, and review meetings.He/she also helps the team remove any impediments to progress, and facilitates meetings and scrum ceremonies. The SM motivates the team to use scrum and to make the most of it.
However, the SM has limited authority. He/she can’t make the team use scrum if its members don’t want to. This is why I think that combining two roles (SM and TL) to be undertaken by one person can be beneficial: the TL’s authority enables them to make the team get the best out scrum activities.
The PM is responsible for all elements of the project: budget, planning, scheduling, resources, risks, etc. He/she doesn’t delve into technical details, but his/her goal is to deliver the project on time within scope and budget. The PM assists in defining the project scope and objectives, develops a detailed project plan to monitor and track progress, manages changes to the project scope, project schedule, and project costs, manages the relationship with the client and stakeholders, and performs risk management.
The scrum methodology doesn’t incorporate a PM role. Instead, the product owner makes all decisions about the project. At the same time, scrum doesn’t consider issues such as budget and resources. Without resolving these issues, the project is likely to fail. Thus, the Project Owner is still important in software development. If the client doesn’t assume the Product Owner role, the PM can consolidate these roles.
The PM works with all teams involved in developing the project.He/she has the project teams report to him/her, conducts periodic individual performance reviews, and deals with promotions and salary increases. He/she is also the primary interface with the client and other departments such as HR and accounting.
Any software project, regardless of its size, needs a team to develop it. The team may consist of one person, who may then be the only responsible for the result.
If the team contains two or more people, it needs to have a responsible person – a leader who will solve problems, manage relationships, and make the team efficient. Without this person sufficient results are unlikely to be achieved as there will be conflicts of interest and a divergence of ideas.
A large project may require several development teams. Interconnections between them demand management in order for the overall project to succeed.
If you don’t have anyone who is responsible for the project objectives and results, scope of tasks and development schedule, resources and costs, then you should accept this responsibility yourself or be prepared for project failure. If you don’t have a person responsible for teamwork, you will have no one accountable for inefficient development, task achievement, developers’ skills, and collaboration.
It is impossible to develop a project without anyone being responsible for its overall progress, and for its details. I am sure that one person can take on several roles, but in my view all projects need such a person.