Collaboration/Team/Roles and responsibilities
Product owner
editThe 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
editThe 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
editThe 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)
editQA 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
editEngineers 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
editThe 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
editThe 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
editThe 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