Developer Relations/Planning

The Developer Relations planning process is based in Phabricator. The team breaks down their planning into several levels: A strategy, a roadmap (per quarter plus a backlog, in a Phabricator team project), selected quarterly goals (on wiki), and monthly sprints (in Phabricator sprint projects).

Every significant task that doesn't belong to a regular workflow needs to have its own Phabricator task associated to the team project.

Strategy
Our team doesn't have a proper strategy in place yet. Pending.

Roadmap
The Developer Relations roadmap can be found at https://phabricator.wikimedia.org/tag/developer-relations/

The roadmap presents columns for every quarter, and we keep a view of at least four quarters.

The roadmap reflects
 * goals and other actions required to implement the strategy and the WMF annual plan
 * events and other predictable activities
 * other tasks in our backlog

New tasks are placed automatically in the backlog. Then we move them to the column of the quarter that seems more appropriate, usually once a month during a team meeting.

There is no common definition of a roadmap across the Wikimedia Foundation teams. The closest reference is Wikimedia Foundation Annual Plan/2015-16.

Quarterly goals
We follow the process for defining quarterly goals used at Wikimedia Engineering/2015-16 Goals. It starts around the middle of the previous quarter, about seven weeks before the planned quarter starts.


 * April - June 2016 (to be defined)
 * January - March 2016
 * October - December 2015
 * July - September 2015
 * April - June 2015
 * July 2014 - March 2015
 * July 2013 - June 2014
 * July 2012 - June 2013

Goals vs regular work
Quarterly goals are tasks that can be completed within a quarter. Regular workflows don't constitute goals per se, although significant and measurable improvements in these workflows can be defined as goals.

For people dedicating a lot of time to regular workflows, goals are a way to commit to non-regular tasks that must be completed, which otherwise would end up slipping month after month because of "regular work".

Individual goals and team goals
All goals are assigned to one person, who is the ultimate responsible of its successful completion. Sometimes that person is also in charge of doing most if not all the work required to achieve the goal. These are considered individual goals. Defining your individual goals and agreeing them with your team is also a way to define and agree what will not be a goal for you during the quarter. This is specially useful in busy times, when you must prioritize existing tasks or deal with new unexpected tasks.

Some goals are selected as team goals, and will define the priorities of the team during that quarter. All team members should be aware of the progress and main problems of the team goals, and should help whithin their capacity, even if sometimes this is done at the expense of their individual goals. Team collaboration is the main feature of a team!

Goal-setting process

 * 1) The process starts with the creation of a new section for the next quarter under Developer Relations/Goals and a related task in Phabricator.
 * 2) An announcement is sent to wikitech-l, wikitech-ambassadors, and optionally other channels inviting everybody to propose, discuss, and help committing to quarterly goals.
 * 3) Team members can start proposing goals at the wiki page, its discussion page, or team team meetings.
 * 4) By the deadline for goals drafted, all goal candidates should have a related task in Phabricator including related projects and measurement of success. Discussions specific to a goal should happen in its own task.
 * 5) From that point, candidates will be prioritized through online discussions and team meetings until they have agreed at a department level.
 * 6) By the end of the quarter, every team member has also agreed a list of individual goals with the rest of the team.

Monthly sprints
Tasks targeted for the current quarter on the team workboard get added to monthly sprints by task assignees / team members. Progress on a task is expressed by moving the task to a different workboard column.

See tasks on the workboards of our monthly Sprint projects in Phabricator. (Older monthly sprint projects before team name change).