Reading/Roles and responsibilities

From mediawiki.org

Reading teams are comprised of the following roles, which are defined by their associated 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'). NOTE- bugs and technical/non-user-facing stories are treated differently from user-facing work:
    • if a bug is resolved in Phabricator, it is automatically considered "signed off"
    • for tech tasks, whoever merges the task has indicated that they sign off on it
  • 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.

Scrum Master[edit]

The Scrum Master 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

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

User Experience (UX) Designer[edit]

The UX Designer defines how users will interact with the product. Responsibilities include:

  • 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 design expertise and guidance to engineers and QA during code writing and testing
  • Ensuring that the product is not only useful, but usable 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

Community Relations Specialist[edit]

The Community Relations Specialist:

  • Write user documentation, FAQs, blogs, for features and products so that users are aware of the objective and intention of features
  • Serving as the voice of the community during feature and product planning. Might run surveys or use other mechanism to measure user satisfaction/requests.
  • Shaping and executing community to team communications and vice versa

See also: Wikimedia Product Guidance

Engineering[edit]

During Q1 FY 2017-2018 (July - September 2017), the engineering group in Readers formulated and discussed the following RACI matrix to describe a number of its core activities.

A short guide to RACI:

  • Responsible (does the work)
  • Accountable (ensures it happens, on the hook if it doesn't)
  • Consulted (is sought for input)
  • Informed (is notified)
Activity Software Engineer; Associate Software Engineer Tech Lead (rotating role, on team's timeline) Senior Software Engineer Engineering Manager Engineering Director
Code
Maintain quality and architectural coherence of software R R A I
Write excellent code and configuration R R A I
Review code and configuration R R/A C/A I
Test
Write unit tests R R A I
Monitor tests R R R A I
Manual testing (may complement QA resource's work) R R A I
Sign off on technical/nonfunctional task resolution R R A I
Build agreed upon automated acceptance tests R R A I
Documentation
Write inline documentation R R/A I I
Write and update on-wiki documentation R R A I
Document complex architectural decisions R R A I
Standards and Architecture
Share technical best practices and standards C/R R R/A I
Define and enforce technical best practices and standards C R R/A C/I
Develop technical plans to support and maintain architecture to support Readers audiences C R R/A C/I
Onboard new team members C R R/A R/A/I
Regularly acknowledge/request info on/respond to bugs R R A I
Review bugs/tasks for standup C R C A I
Team Planning and Coordination
Escalate scope and timeline risk R R R/A R/A/I
Planning, estimation, and requirements analysis C/R R R/A R/A I
Analyze product requirements and ensure technical requirements are adequately generated C/R R R/A I
Facilitate impromptu discussions with remote peers R R R/A I
Define annual, quarterly, and roadmap goals C C R R/A
Cross Team Planning and Coordination
Ensure team is represented on wikitech-l and, as appropriate, mobile-l C R R/A C/I
Ensure meetings scheduled with appropriate stakeholders C R C R/A C/I
Review Scrum of Scrums notes R R R R/A R/I
Review and interact on RFCs C R R/A C/I
Ensure features destined for stable or removal C R C R/A C/I
Attend Reading tech leads meetings, update Scrum of Scrums Etherpad, rotatingly attend SoS, share back C R C A/C/I C/I
Coordinate implementation of supporting architecture/infrastructure R/C/I C R/A I
Represent engineering discipline in planning activities C R R R/A I
Coordinate development and deployment schedules for architectural enhancements across teams C C R/A C/I
Identify and manage dependencies across teams C C R R/A C/I
Coordinate across audience vertical engineering teams C C R/A R/A
Connect external partners with internal team C C C R/A
Line Management and Budget
Support recruiting & hiring in coordination with management C/I R R/A R/A/C/I
Manage staff performance I, as needed C R/A R/A
Personnel discipline I, as needed C R/A R/A
Resource team C/I C R/A R/A
Budgeting C/I, as needed C C R/A

See also[edit]