Members and Roles
Projects are made by people so it is important to organize the skills, knowledge and accountability in order to successfully deliver the goal of the project. The number, roles and structure of software development project teams depend on the project complexity, organization, work environment, business context and many other factors. That means it is not possible to define a unique team composition and structure. In any case there are a minimum number of roles that should be always present in most software development projects to ensure the proper execution of the development life cycle. Each team member can assume one or more of these roles:
Stakeholders: they influence the project (positively or negatively) so stakeholders management it is a critical activity to manage expectations, interest, level of influence, information needs and impact of people in the project. Stakeholders include users, customers, the team, project sponsors, subject matter experts and any person interested or affected by the project.
Project Manager: person in charge of planning and guiding the project to meet its objectives. The Project Manager should have the knowledge, ability and authority to link the business, strategy and the team with the aim of delivering maximum value to customers within time and budget constraints.
Business Analyst: this profile has the task of engage stakeholders to collect business and technical requirements for the project and verify that project deliverables meet the requirements. The analyst performs an assessment of the project to decide the most effective mechanisms to gather information depending on the project complexity and level of scope detail.
UX Consultant: understands how users interact with the application deciding the graphic interface, layouts, interactive contents, mobile requirements and other elements to improve the user experience.
Software Architect: based on the functional and technical requirements, this role designs the technical solution and architecture. This person works closely with the technical team to make sure the right models are used and verify that the solution meets the project needs.
Database Administrator: this role understands the business and data requirements to design and create the databases models needed by the application.
Developer: they write the code to implement the logic of the application. They also need to ensure the quality of the code by writing unit tests.
Quality Assurance: this roles is in charge of creating and executing test plans to verify that the application meets the expected functionality and the quality of the solution.
Deployment: they compile, package and deploy the solution in the appropriate environments. This role has to take into account all needed components, modules, libraries and configuration files to make sure the application can be used by users.
Product Owner: this role is used in Agile projects to manage the Product Backlog where all project needs and requirements are specified and prioritized. This is a key role that has to maintain and share the Product Backlog throughout the project reflecting the changes and business needs.
Scrum Master: this role is used in projects that uses the Scrum framework and is responsible to make sure that everyone in the project understands and uses the framework correctly. This role acts as a facilitator working with the Product Owner to manage the Product Backlog and removing impediments from the team to improve its work.