Collaboration/Team/Roles and responsibilities
Product owner
[edit]The product owner, in a nutshell, is ultimately responsible for the product or service to be delivered. The product owner is responsible for:
- Providing vision for the product or service being developed
- Being the single point of escalation for contending priorities among stakeholders
- Managing the product road map
- Making final decisions about trade-offs when desired functionality, or scope, exceeds the capacity of the team
- Defining the target constituent for iterations, releases, and the overall product
- Making final decision about whether or not work done on stories is complete ('acceptance').
- Doing the work of determining what features the team should work on in order to achieve our user, community, and Foundation goals. This is done in collaboration with the team
- Making sure that our products have a coherent, compelling user experience
Because the product owner has the final say over prioritization, there should be only one person acting as product owner.
Scrummaster
[edit]The scrummaster is primarily responsible for maintaining the team's process and ensuring the team delivers what is expected from the product owner. Responsibilities include:
- Evolving team/agile capacity
- Removing blockers
- Leading/coordinating/facilitating whole team in story delivery
- Facilitating meetings
- Optimizing process
- Coordinating project work streams
- Helping to manage project/iteration scope
- Managing external dependencies
- Escalating risks/issues
- Reporting on progress
Tech lead
[edit]The tech lead guides and represents the engineering team. Responsibilities include:
- Assisting in planning activities and representing the engineering team at planning meetings when the rest of the team is not present
- Owning the maintenance of the quality and architectural coherence of the code developed by the project
- Escalating significant architectural/technical issues for prompt resolution
- Coordinating regular refactoring/code hygiene to prevent accumulation of technical debt
- Communicating, educating, and enforcing best practices and standards
- On-boarding of new team members
- Bugzilla
- Provide leadership to ensure tasks are triaged properly, become actionable and move forward
- Be responsible for ensuring that appropriate tasks get WONTFIXED when there are technical problems
- Responsible for ensuring that the team has a presence in important conversations on wikitech-l and EE mailing lists
Quality Assurance analyst (QA)
[edit]QA oversees the quality of the product. Responsibilities include:
- Producing test cases/scenarios
- Manual testing when not automated/automatable
- Maintaining regression test suite
- Integration testing
- Exploratory testing
- Assisting in acceptance criteria definition
- Training and otherwise working with engineers in best-practices for assuring code and product quality
Engineer
[edit]Engineers build the product and coordinate the construction of supporting infrastructure. Responsibilities include:
- Turning user stories/requirements into working software
- Conducting the technical analysis of requirements
- Assisting in the evolution of user experience designs
- Coordinating the implementation of supporting architecture/infrastructure
- Assisting with testing
- Estimating user stories
- Working with QA to automate testing scenarios
- Presenting work to QA and BA for final testing
- Escalating risks and issues that impact scope and timeline
- Writing code in line with project standards
- Standing behind architectural decisions, patterns and best practices that the team has agreed to
User Experience (UX) designer
[edit]The UX Designer defines how users will interact with the product. Responsibilities include:
- Research & gathering data to assess needs/requirements of users
- Proposing designs to define how users will interact with the functionality of the product (including designs of UX in general, and the product's interface in particular)
- Providing solutions to business and user problems or opportunities
- Providing design expertise and guidance to engineers and QA during code writing and testing
- Ensuring that the product is not only useful, but usable and desirable as well
- Assisting in narrative and user story development, particularly in the delivery of development-ready design assets and/or prototypes
- Leading usability testing and logging associated findings
Business analyst
[edit]The business analyst is responsible for ensuring that the team has as much information about end-users as possible to help in prioritization and product decisions. Responsibilities include:
- Gathering data on features and user behavior to assist in user story creation and analysis
- Summarizing and communicating the needs of existing users to the team
- Identifying dependencies/related stories or gaps in sprints/releases
- Helping test stories for completion
- Performing quantitative and/or qualitative analysis to measure the impact and success of features on the editing community
- Providing deep community insight at every stage of product development
Community liaison
[edit]The Community liaison assists in maintaining a line of communication between the Wikipedia community and the team. Responsibilities include:
- Disseminating information about new features to the community
- Gathering feedback on new releases and features requests for future releases from end-users
- Shaping discussions with the community around wider rollouts
- Assisting the product owner in prioritizing feedback and features requests
- Performing quantitative and/or qualitative analysis to measure the impact and success of features on the editing community
- Providing deep community insight at every stage of product development