Best Practices How-To's Tips & Tricks

Baking Boards – Episode 2: JetBrains Design Team

In this episode of Baking Boards, we show you the agile board that the design team cooked up to manage issues in their project.

https://youtu.be/C7GQYDfPD0Q

Preparation

  1. Create your board.
    We built this board using the Custom board template.

1a_create

When you create the board:

  • Select the projects that you want to manage on the board. All of the issues that we manage on this board belong to the same project.
  • For the Backlog option, choose Create new. We won’t do anything with it, but you need a backlog to create the board.

1b_create

2. Define columns.

With the custom board template, you have to define your columns first. On our board, columns are identified by values from the State field. We merge the Submitted, Open, and Reopened states in the first column. The second merged column shows issues that have the states Incomplete, or To be discussed. We then have dedicated columns for the states In Progress, Wait for Reply, and Fixed.

2_columns

3. Create a sprint.

Now that your board is configured correctly, you can add your first sprint. This board uses sprints that correspond to the seasons on the calendar. We set the sprint name to the season and year and schedule each sprint for three months.

3_sprint

4. Set sprint options.

We use the Add new issues to sprint option and select the current sprint.
When we add the next sprint to the board, we update this option to add issues to the new sprint.

4_sprint options

 

 

 

 

 

 

5. Define swimlanes.

Here, we identify swimlanes for each value in the Assignee field. This creates a separate swimlane for each member of the team.
We show the swimlane for uncategorized cards at the top of the board. New issues that are added to the board automatically appear in this swimlane.

5_swimlanes

6. Configure cards.

We don’t have the option to set the default issue type for new cards. That’s because we define swimlanes by assignee. Which is fine — we use the Type field to indicate whether the design request is for an icon, t-shirt, banner, and so on.
The Color Scheme is based on the set of values for the Priority field.

We use the Show colors for other custom fields option to show color indicators for the Priority field, but we don’t really need it. The first custom field in our project is Due Date, so we work against the deadline.

6_cards

There are a few features on the board that we don’t use at all:

  • Backlog — with the option to add new issues to the sprint enabled, we don’t keep a backlog. New issues appear on the board automatically and are assigned to a designer shortly after they are reported.
    If you have unresolved issues in an existing project that you want to migrate to the board, create a saved search that contains these issues and use this saved search as a backlog. Once you’ve moved all of the issues from the backlog to the board, you can collapse the backlog and forget about it.
  • Charts — we don’t work with charts on the board. If you’re looking to build a board that’s similar to this one, you can pick whichever chart suits your style.

Secret Sauce

As you may have noticed in the screencast, our design team has two team leads. They review all cards that are added to the board automatically and assign each issue to one of our designers.
What you don’t see is the workflow that is attached to the Design & Artwork project. This workflow blocks anyone other than these two team leads from changing the value in the Assignee field.

This means the team can make their board visible to other teams at JetBrains, but they have full control over who takes each assignment.

Here’s the rule:

design workflow rule

The workflow allows any member of the design-artwork-assignee-updaters group to set the value of the Assignee warning. If the team leads need someone to assign issues in their absence, they just add them to the group.

If anybody else tries to assign an issue in the project, an error message displays the names of the people they can contact to get the issue assigned to a designer.

image description