JIRA Blueprint handling for KWG

Background

As Linaro moved away from Launchpad to JIRA for project tracking we need to setup basic engineering practices. There already exists process for Roadmap handling, here we would like to focus on engineering - how does engineer find his work items, modify them, break them down and report on status.

In this wiki we will talk also about (fast forward links):

Greenhopper boards - Kanban vs Scrum

At the time of writing the kernel working group team has been using KABANboard - skip forward or read the details below.

Before taking a detailed step-by-step dive it is time to look at the tooling provided for engineering projects. JIRA has been enabled with a Greenhopper plugin, which is meant at presenting the database (JIRA is database of Issues) in more human way. The Greenhopper plugin supplies boards to support two types of projects:

  • SCRUMboard - for projects running scrum - a scrum team delivering agreed and committed content at pre-defined intervals (sprints)
  • KANBANboard - for projects that deliver features through a virtual pipeline of states (todo, in progress, in review, …, done)

At the time of writing the kernel working group team has been using KABANboard and not SCRUMboard. Let me also specifically note that the board is used, but not the Kanban process itself. The reason for it is that KWG has been always about working upstream first and by using the best upstream kernel development practices - we would not like to change that just because we have tools that can do something else. Using KANBANboard (not Kanban as a process) is currently seen as a way to report progress on upstream first type of engineering without too much process being involved to ruin one’s day.

KWG boards

KWG currently has these KANBANboards:

One team, many boards. We could have decided to have all the engineering activities on one board. It would be difficult to navigate, difficult to report team statistics and get a grasp of project progress. Hence the partitioning.

Getting to your board

Getting to your board the first time is more difficult. The second time JIRA remembers your favorite board and will offer it. But for the first time it goes like this:

  1. Go to cards.linaro.org

  2. Log-in with your Linaro ID
  3. Click Agile on the top bar (1)

  4. Click either ...more or All boards depending on your view to list all available boards (2)

  5. Scroll down to find KWG boards
  6. Click the board you are interested in (3)

list_boards_A.png listing_of_boards_A.png

Next time you go to cards.linaro.org and log-in you will find your favorite board right under the Agile drop-down.

Finding your work items

Lets pretend you are Geoff. After getting to your board by the steps described in previous chapter look at the screen. If it looks much different from the one on the screenshot below try switching from Report to Work mode in upper right-hand corner.

kanban_board_overview_work_A.png

Grouping

Grouped by names of developer you can see lists of items (bugs, blueprints, subtasks) there in three columns:

  • TODO - stuff that needs to be done (new, reopened, returned from upstream back to engineering, etc.)
  • INPROGRESS - stuff that is being worked on and reported status for
  • DONE - stuff that has been marked as “resolved” by the engineer or “closed” by TechLead/Manager

Colors

Items are on small tiles with a colorful strip and tiny icon on the side. Colors and icon make it easier to distinguish item types:

  • Blue is Blueprint - biggest piece of work engineer deals with.
  • Red is Bug
  • Yellow is Engineering Card, for less clarity called often Engineering Epic by JIRA.
  • Cyan is Subtask - a part of Blueprint that is worth separate tracking

Updating your work status

For this you need to get to your board and find your items, as described in previous chapters. Once you do, click on the ID (1) of the item (e.g. KWG-31 in the example) and it will expand the view to show the details of the item on the right hand side as illustrated here:

kanban_board_update_item_A.png

On spot you can:

  • Log comments - found documentation, work started, sent for internal review, posted on lkml for comment, etc. You name and date are automatically added
  • Update the status (TODO, INPROGRESS, DONE) of your item - done by a drag&drop operation by moving item from column to column as illustrated here. The system offers only certain actions to certain people - e.g. only the Assignee of item is able to make it INPROGRESS. Also note some state transitions (e.g. from INPROGRESS to DONE) will trigger a dialog asking you to write a bit about what happened before the transition is executed.

kanban_board_drag_drop_A.png

Resolving issue as done

For this one simply drags and drops item from TODO or INPROGRESS to the DONE column. A marked landing area opens while doing it. Drop the item and a dialog will pop-up asking offering you add an update, so write a Comment to explain what happened that made this item done.

Please note - the dialog will not show Description so you won’t be able to cross-check if for acceptance criteria or other information.

Reverting

Canceling the dialog will cancel the resolution. If a mistake has been made, the item can be dragged and dropped back from DONE to TODO state and worked on some more.

Creating new items

As engineer you have free hands in breaking down the work the way it helps you to track the work and communicate progress. We use sub-tasks to log actions or work items - a backlog of engineering work. Sometimes, we want to create a higher-level item that would group logically bunch of sub-tasks - in this case we can choose to create a blueprint. Also in case where we handle other business like fix random bugs unrelated to current work, do documents, etc we can track the work as Blueprint.

So in short - engineer creates sub-tasks on demand, and sometimes also Blueprints.

Creating a Subtask on Kanbanboard

To create a sub-task there needs to be already an Engineering card existing. The process is much easier and less error-prone than creating a Blueprint. Here are the basic steps:

  1. Click the hyperlink ID of the Engineering card you work on, that should open it on the right-hand side
  2. Scroll down till you see a button Create Sub-Task and click it for dialog to appear

  3. Fill in Summary

  4. Optionally fill in description, if the one-liner summary is not good enough
  5. Enter your work estimate (in typical engineer working days) into Original estimate field

  6. Scroll down and set the Assignee - if you leave it the item will go to Deepak

  7. Click Create button on the bottom and a sub-task should be created, moved to the correct assignee and linked to the parent Engineering card.

Creating a Blueprint on Kanbanboard

The workflow for creating a new Blueprint:

  1. Find your board
  2. Click the big blue Create issue top-middle of the screen

  3. Tripple check the Project is “Kernel” and Issue Type is “Blueprint” - Careful here - JIRA can play games and put something else there!!!

  4. Fill in the Summary - it will show in the view of the item

  5. Optionally fill in Description for cases where more detail than a single line is needed to explain the work needed

  6. Optionally fill in Headline - it is one-liner collected automatically and published in monthly release notes

  7. Scroll down to Assignee and set it right - to yourself or other engineer. It will be easy to find this way.

  8. In Component/s drop-down select the one relevant. The component is important - without it the item created will not show. Set it wrong, it will show on wrong board. Do not set it - the issue will not show at all.

  9. Click Create button on the bottom and Blueprint will be created. TechLead and Project manager will get an email notification, and they will link the Blueprint to the proper roadmap card

What could go wrong by symptoms

Created Blueprint does not show

Check:

  • Did you assign it to proper person? By default it goes to Deepak. You can still find it on the board, under Deepak’s name, fix by re-assigning.
  • Did you file it for wrong Project? Contact Project manager to fix it.
  • Did you forget to set the Component or have you set wrong Component? Search for the item in the Quick search box on top-right corner by some text from the Summary, then edit it and fix the component.

Created Sub-Task does not show

Most likely the assignee is wrong/default. Look for it on the board and reassign to the right person

Created a wrong issue type

What is that? You wanted a new Blueprint, but somehow an Engineering task was created. Or you made a Sub-tasks for your Engineering card, but you would wanted to have it under new Blueprint? In most cases it can be solved - JIRA can convert issue type from one to another. Ask your Project manager to fix it.

WorkingGroups/Kernel/JiraBlueprintHandling (last modified 2013-12-17 20:38:10)