The roles and organization structures differ between organizations. But, for many, traditional IT roles and are outdated.
Roles maybe confused as positions, but they are not. A person is not limited to one role only. They may take on many different roles throughout a project or take on more than one role at any given time.
Agile teams consist mainly of generalizing specialists. A generalizing specialist is someone who has one or more technical specialties, for example Java programming. They contribute something of direct value to the team, and have a general knowledge of software development. Generalizing specialists actively seek to gain new skills in both their existing specialties as well as in other areas. Generalizing specialists are between the two extremes of specialists, people who are extremely familiar with a narrow domain and generalists who have some knowledge on a broad range of topics.
Common Agile roles include:
Team lead may be referred to as “Scrum Master” in Scrum, team coach or project lead. The team lead is responsible for facilitating the team, managing resources, and resolving problems. This role requires adequate project management skills.
Team members are responsible for the creation and delivery of a system. Activities include modelling, programming, testing, and release activities.
The product owner, represents the stakeholders. They are responsible for the prioritized work item list, or a Scrum product backlog, for making decisions and providing information in a timely manner,
A stakeholder is anyone who is a user, direct or indirect. This includes senior managers, operations staff members, those funding the project, auditors and developers. Anyone potentially affected by the development of a software project is considered a Stakeholder.