Wikimedia Apps/Team/iOS/iOS Roles and responsibilities
This page is currently a draft.
|
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
- 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
[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
Movement Communications Specialist
[edit]The Movement Communications 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
Data Analyst
[edit]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