Page MenuHomePhabricator

Decision request - WMCS Kanban board
Closed, ResolvedPublic

Description

Problem

The cloud-services team Kanban board is currently listing 67 tasks in the "Doing" column and 48 tasks in the "Soon" column. This doesn't reflect the tasks actively being worked on ("Doing") or the ones that have been prioritized ("Soon"). This can be a source of confusion for both people in the team, members of other teams and external volunteers.

The underlying assumption of this decision request is that a Phabricator board that is more accurately reflecting the team work and priorities can lead the team to work more effectively, reduce the cognitive load for team members, and provide more clarity and transparency to people external to the team.

Constraints and risks

  • Different attempts have been done in the past (see this board that was created for Q3 2021/2022), and they were abandoned. We need to gather more information about why they didn't work out.
  • This decision request concentrates only on the "Soon" and "Doing" columns and does not consider the other columns of the board (Blocked, Epics, etc.). A more comprehensive approach might bring additional advantages.

Decision record

https://wikitech.wikimedia.org/wiki/Wikimedia_Cloud_Services_team/EnhancementProposals/Decision_record_T322756_WMCS_Kanban_board

Options

Option 1

Create a Phabricator "Milestone" for every quarter.

This is similar to what other teams are doing, e.g. Observability. The milestones appear in the main team board and each milestone has its own board organized in Kanban style.

It's also similar to what the WMCS team is already using for the Toolforge Build Service project, although in that one the "milestones" are only 2 weeks long.

Pros:

  • provides a separate "zoomed-in" view for the current quarter, visualizing the team priorities for the quarter that are currently in a Google Doc
  • reduces the chance of tasks being forgotten for too long, as a new board is created every quarter and old tasks must be manually added to it

Cons:

  • some extra work to create a new Milestone every quarter
  • only one milestone can be assigned to a given task, so the same task can not be at the same time tagged with a "WMCS-Qx" milestone, and a "Toolforge Build Service Iteration 0x" milestone. update: this is not true, more details in this comment.

Option 2

Create a Phabricator "Subproject" for every quarter.

Pros:

  • the same of Option 1
  • can coexist more easily with the milestones used in the "Build Service" phabricator board update: this is not true, more details in this comment

Cons:

  • the same of Option 1
  • subprojects cannot be automatically displayed as columns in the parent board

Option 3

Keep using the current board, but update the "Doing" and "Soon" column to reflect the current team work and priorities.

Pros:

  • easier maintenance (no need to create new boards every quarter and archive old ones)

Cons:

  • requires more attention to prevent build-up of tasks
  • does not provide a visual representation of the priorities for each quarter

Event Timeline

As a project manager, I think Option 1 would be ideal. We're trying to do that with the Developer Advocacy team, we opened a Milestone workboard for the quarter with basic kanban style columns and it makes it easier to track the work that's currently being done and what is out of scope for the quarter. However, I'm not familiar with decisions that have been made in the past by the WMCS team, so maybe someone in the team has better insights to this.

Different attempts have been done in the past (see this board that was created for Q3 2021/2022), and they were abandoned. We need to gather more information about why they didn't work out.

Unless a very compelling reason is found, I would encourage to try even if it was tried before and failed, as a lot has changed since then, including most of the team.

Option 1: only one milestone can be assigned to a given task, so the same task can not be at the same time tagged with a "WMCS-Qx" milestone, and a "Toolforge Build Service Iteration 0x" milestone.

This is a pity! if it wasn't for this it would be my favorite option. Maybe we can sort something out to not need double milestones per-project, but not sure what.

Option 2: subprojects cannot be automatically displayed as columns in the parent board

This might be possible to build tooling to do so if we want it (our own small UI for that, kinda).

I would go for Option 2, unless we find a way to avoid the collision mentioned in Opiton 1, then I would go with that one.

the same task can not be at the same time tagged with a "WMCS-Qx" milestone, and a "Toolforge Build Service Iteration 0x" milestone.

This is less of a problem than I thought, because (quoting from the official Phabricator docs) "Objects may not be tagged with two different milestones of the same parent project". In fact, we already have some tasks that are tagged with both Toolforge Build Service (Iteration 04) and cloud-services-team (Kanban) (both are milestones but with a different parent project).

fnegri updated the task description. (Show Details)

Option 3 was the historical norm during most of the Brooke era -- we had periodic meetings where we scrubbed the kanban board and rearranged tickets to reflect the actual present. We lost the habit (even before Brooke left) and I haven't started it up again, mostly because of it not feeling like a high priority. Those meetings were very boring but the system worked OK.

I have a couple of higher-level questions about this topic, which I don't know the answers to:

  1. What is the kanban board good for?

If we adopt it as the single source of truth for planning (and e.g. abandon betterworks and google docs) then I can definitely see the value for planning/managing.

If people outside of the team actually look at this board, I can also see a value in that, for publicity/communication.

  1. Is 'quarterly' a useful or important concept?

I tend to think of quarterly planning as existing to satisfy upstream demands rather than reflecting any cadence of actual work within the team. Now that the upper bits of the org chart have stopped clamoring for quarterly reporting I don't tend to think of 'quarters' much if at all outside of hardware budgeding; each project has its own timeline.

Perhaps we could have an additional clinic duty task consisting on moving unassigned tasks away from the "Doing" column.

This somewhat resembles option 1: I was discussing workflow with Leo @ Observability and they use a kanban board similar to ours but it also has a quarterly-updated column with their Q goals in it. Seems to work for them.

@Andrew Yep, the Observability board was one of my inspirations for option 1.

I tried to visualize how it would look for us. Bear in mind the following screenshots were created copy-pasting HTML elements around, and are only including a few example tasks.

Main team board:

Screenshot 2022-12-07 at 16.00.19.png (2×3 px, 1 MB)

Q2 board:

Screenshot 2022-12-07 at 16.38.00.png (1×3 px, 663 KB)

This is how I envision it would work (it's just a draft, I'm sure many things will need to be refined):

  • the "main team board" holds things we don't plan to work on in the current quarter:
    • "Inbox" for any untriaged requests
    • "Soon!" for things we consider higher priority but we're not going to tackle immediately
    • "Needs discussion" for items we want to discuss in the team
    • the "Doing" column no longer exists in the main team board, it is replaced by the Quarterly columns (Q2, Q3, etc.)
  • the Q2 board shows all tasks in the Q2 column of the main team board, split in several columns:
    • Inbox is for any task that is added during the quarter and we want to work on immediately (it can be part of the quarter priorities, or any unplanned urgent task)
    • Epics show the main priorities for the quarter (roughly matching the list defined in our planning Google Doc)
    • In progress shows tasks currently in progress (can be sub-tasks of an epic, or smaller independent tasks)
    • I also moved Clinic Duty and Blocked from the main team board to the Quarterly board, we could also move Watched. To be discussed.

A decision meeting was held yesterday, and it was decided to proceed with Option 1, as this was my preference and there were no strong objections.

  • @aborrero was worried it will require a substantial effort with (so far) unclear benefits, but he agreed to proceed with the caveat that I will be doing the required work of creating boards/updating tags for this quarter, and we will discuss the pros/cons in the next quarter before deciding to continue.
  • @nskaggs was not convinced by any of the options listed in this task, but agreed we need to iterate on the current boards and processes to find the best solution.

@nskaggs also had a question on how unplanned work would be tracked in the new boards. In my previous comment I imagined two "Inbox" columns, one in the "main team board" (#cloud-services-team), and one in "Q2" milestone board (#cloud-services-team-FY22/23-Q2). Unplanned work that is not a priority could go in the first inbox, while unplanned but (somewhat) urgent work could go in the second. The second "Inbox" could maybe use a different name to avoid any confusion (something like "Next Up" or "To Do").

fnegri triaged this task as Low priority.
fnegri updated the task description. (Show Details)