Collaboration/Team/Roles and responsibilities

From mediawiki.org

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

See also[edit]