Wikimedia Apps/Team/iOS/iOS Roles and responsibilities

From mediawiki.org
< Wikimedia Apps‎ | Team‎ | iOS
Jump to navigation Jump to search

Product Owner[edit]

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"). 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
  • 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[edit]

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
  • Optimizing process
  • Coordinating project work streams
  • Helping to manage project/iteration scope
  • Managing external dependencies
  • Escalating risks/issues
  • Reporting on progress

Engineering Manager[edit]

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
  • Documenting technical requirements
  • 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
  • Ensuring that technical debt is managed and prioritized
  • Hold 1:1s with engineers to aid in professional development, discuss performance, and escalate issues as needed

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

Technical Lead[edit]

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
  • Breaking down tasks and delegating work to engineers

Community Relations Specialist[edit]

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

  • Consulting on user documentation, FAQs and blogs for features and products so that users are aware of the objective and intention of features; also assisting with readying this information for translation
  • Serving as the voice of the community during feature and product planning
  • During the product planning process, advising on how changes to the app could affect communities
  • Shaping and executing community-to-team communications and vice versa

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 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