Agile Roles and Responsibilities
Managing and leading software projects, I have always seen debates on the different roles required and the responsibilities of each manager and team member. Traditional process models have a lot of isolated roles and agile models always argue about shared responsibilities and self organized teams.
Regardless of the size of the project and the number of team members, I found that managing a successful project always require three main roles to manage three main parts. It requires a product owner, a project manager, and a team leader to manage the product, the project, and the team, respectively.
Similar roles can be found in many traditional and agile models but with different responsibilities. You may find them under different names like facilitators, coaches, trackers, mentors, masters, etc.
Product Owner
The product owner works with the customer and ensures they get the highest business value possible. This can be the traditional business analyst and the agile customer.
- Helps the customer to define the requirements and convert them to stories
- Works with the customer to organize and prioritize stories in the product backlog
- Provides initial estimates for stories and releases
- Tracks customer requirements and changes (new features, bug reports, investigation requests, performance issues, etc.)
- Sits with the Team Leader to discuss story details, business constraints, legal issues, etc.
- Provides input on mockups and prototypes
- Sits with the tester to set and track product quality
- Sits with the Project Manager to review the previous release and plan the next
- Manages customer relationship and ensures customer satisfaction
Project Manager
The project manager is responsible of the overall planning and tracking and ensures the work is delivered in scope, on time and within budget. This can be the traditional project manager and the agile tracker.
- Sits with the Product Owner to gather all requirements/estimates and integrates everything into a workable plan
- Works with the management and Product Owner to provide and secure resources (people, infrastructure, licenses, etc.)
- Plans and tracks cost to ensure the work is within budget
- Identifies risks and works with the management and Product Owner to resolve them
- Manages and controls scope to ensure that only what was agreed to is being delivered
- Continuous planning for changes in requirements, cost, schedule, etc.
- Tracks and communicates project progress and plan changes to Product Owner and top management
- Sits with the Product Owner to review the previous release and plan the next
Team Leader
The team leader manages the team and ensures they deliver the highest quality possible. This can be the traditional architect and the agile coach.
- Communicates with the customer to discuss the details of the iteration and each story included
- Communicates with the Product Owner to discuss requirement conflicts, business constraints, legal issues, etc.
- Performs iteration planning, daily planning and assigns tasks to team members
- Controls the development process (iteration meetings, deployments, testing, client communication, etc.)
- Provides team leadership and coaching to set a good example to the team
- Directs the day-to-day activities of the team members and ensures they follow the standard processes and procedures
- Coaches and trains team members through planning games, pair programming and peer reviews
- Ensures that tasks are being done with a high quality (design patterns, coding standards, test coverage, type of bugs, etc.)
- Transfers knowledge and encourages knowledge sharing across the team
- Ensures that the team spirit and morale is kept and improves members confidence
- Tracks and communicates iteration progress and team performance
- Communicates with the Project Manager to discuss the progress
- Sits with the Product Owner to review the previous iteration and plan the next
Team Members
Team members focus on implementing user stories using the best techniques and practices. They investigate, analyze, estimate, design, code, document, deploy and test stories. Those can be senior/junior developers, interface designers, system administrators, testers, etc.
Conclusion
A successful software project requires a product owner, a project manager, and a team leader to work together with the customer and the team. Of course, some responsibilities can be moved from a role to another depending on the project type and individual skills, but this is not valid for everything.
For example, the project manager may act as the product owner with some extra efforts but if the project manager acts as the team leader, you may have problems with the project schedule or code quality. Similarly, if the team leader acts as the project owner, you may have problems with the code quality or customer relationship. And so on.








Leave a Comment