Wikimedia Apps/Team/iOS/iOS 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"). 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
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

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

Community Relations Specialist
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)
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