Wikimedia Apps/Team/Development cycle

From MediaWiki.org
Jump to navigation Jump to search

The mobile app develops software in two-week long sprints, or iterations. During the course of a development iteration, planning occurs for upcoming iterations.

Rationale[edit]

The team works in such a fashion in order to:

  • Keep the cost of change low (in all facets of the project - requirements, personnel, practices, etc)
  • Minimize risk by iteratively prioritizing requirements, closely examining/reevaluating the evolution of the product with the product owner and key stakeholders
  • Rapidly make adaptive changes as the product evolves
  • Increase productivity/limit context switching by focussing on a limited scope of small, manageable, discrete chunks of work
  • Measure and evaluate team capacity to aid in realistic estimation and create realistic expectations
  • Maintain a sustainable pace by limiting scope to the team's capacity

Regular Rituals[edit]

There are a series of regular meetings to facilitate iteration planning. They are strictly timeboxed and facilitated by the Scrum Master. Regular planning meetings are open to all, but are mandatory for some. The regular meetings are intended to balance the need for planning activities against the need for head's-down focus time for everyone on the team, and ultimately minimize the amount of expensive context-switching everyone on the team is exposed to.

This table captures the particulars of all regular planning meetings. Specific days of meetings are subject to change for scheduling conflicts, holidays, etc. Attendees are invited via Google calendar, where the definitive date/time of meetings is maintained.

Meeting name When it occurs and duration Purpose Who attends
Standup Daily M/W/F 15mins per team For engineers, designers, QA, and Product Owners to sync up and answer three questions:
  • What have you been up to since the last standup?
  • What do you expect to be working on until the next one?
  • Do you have any blockers?

If new bugs have been reported since our last standup, we conduct a quick triage.

Only engineers (pigs) speak initially. Time is often saved for the end for brief news/announcements (anyone allowed to speak, including chickens)

  • Engineers
  • Scrum Master
  • Product owner
  • Designers
  • QA
  • All others optional
Iteration Planning Weekly on Tuesday, 1 hour (iOS) Teamwide sync to review epics and Product Owner expectations for the coming iteration, so there are no surprises in other ceremonies.
  • Teamwide
Story prioritization First Friday of an iteration, 30 min (Android)
  • Initial selection of work and scoping
  • Setting the bigger picture goals of the iteration
  • Identifying risks/dependencies/etc early on
  • Product owner
  • Scrum Master
  • Engineers
  • Designers
  • All others optional
Story review and estimation Second Friday of an iteration, 30 min (Android

Every Thursday, 30 min (iOS)

  • Review of stories from all of the engineers, with the intention of getting clarification around stories/acceptance criteria, identifying risks and gaps, etc.
  • Point based estimation of story complexity using hat.jit.su/
  • Product owner
  • Scrum Master
  • Engineers
  • Designers
  • All others optional
Retrospective Every 2 weeks on Friday, 30 min per team
  • Review action items from the previous retrospective
  • Answer the following questions and discuss: What worked well during the past iteration? What went poorly during the past iteration?
  • Prioritize issues raised around things that went poorly, and generate action items for them. Assign an owner to the action items who is responsible for overseeing the completion of the action item for the next iteration
  • Scrum Master
  • Product owner
  • Engineers
  • Designers
  • All others optional
Showcase Monthly
  • Team presents the most important work they've done since the last showcase to everyone present
  • Each engineer presents what they've been spending their experimentation time on for group evaluation
  • Director
  • Tech lead
  • Engineers
  • All others optional