Wikimedia Apps/Team/Android/Android Roles and responsibilities

Product Owner


The Product Owner, in a nutshell, is ultimately responsible for the product or service to be delivered. Because they have the final say over prioritization, there should be only one person acting as product owner. Responsibilities include:

  • 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").
  • 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 serve the intended need and provide a coherent user experience

Program Manager


The Program Manager 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 capacity
  • Removing blockers within and across teams
  • Leading/coordinating/facilitating whole team in story delivery
  • Facilitating meetings
  • Maintaining team calendar
  • Optimizing process
  • Coordinating project work streams
  • Helping to manage project/iteration scope
  • Managing external dependencies
  • Escalating risks/issues
  • Developing and supporting healthy team dynamics

Engineering Manager


The Engineering Manager aligns technical and product planning, coordinates cross-team collaboration, and oversees individual engineer development. Responsibilities include:

  • Identifying and managing dependencies across teams
  • Communicating needs and decisions among engineers and across teams
  • Working with Product Manager to evaluate benefits and costs of technical choices to help with planning
  • Working with Technical Lead to coordinate development and deployment roadmap
  • Recommending new technical processes and improvements
  • Hold 1:1s with engineers to aid in professional development, discuss performance, and escalate issues as needed
  • Attend meetings where team is making requests of others

User Experience (UX) Designer


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
  • Ensuring brand consistency and overall aesthetic quality

Technical Lead


The Technical Lead defines and enforces best practices for engineering and oversees architectural decisions. Responsibilities include:

  • Coordinating with the Engineering Manager
  • Analyzing product requirements and ensuring technical requirement are adequately generated
  • Escalating scope and timeline risk
  • Articulating trade-offs around costs of development vs scope to product owner
  • Documenting complex architectural decisions
  • Ensuring that technical debt is managed and prioritized
  • Breaking down tasks and delegating work to engineers
  • Attend meetings where team is accepting responsibility for work

Movement Communications Specialist


The Movement Communications Specialist is the team's liaison with the community, providing expertise on communication and consultation. Responsibilities include:

  • Writing 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
  • Shaping and executing community-to-team communications and vice versa

Quality Assurance Analyst (QA)


QA oversees the quality of the product. Responsibilities include:

  • Producing test cases/scenarios
  • Manual testing when not automated/automatable
  • Maintaining regression test suite
  • Integration and exploratory testing
  • Coordinating with external testing services
  • Training and otherwise working with engineers in best-practices for assuring code and product quality
  • Ensuring holistic quality of user experience

Data Analyst


The Data Analyst provides quantitatively-based user insights to inform decision-making. Responsibilities include:

  • Helping set up instrumentation to collect useful data without harming user privacy
  • Ensuring that data collected is high quality
  • Extracting insights from the Foundation's data repositories
  • Building dashboards and reports for tracking success and health metrics
  • Assisting with design of experiments (A/B tests) and analyzing experiment results