Kanban Software Development with GreenHopper

April 8, 2013

Rapid Boards

Since the release of GreenHopper 6.0 teams have been able to take advantage of new Kanban boards (formerly called Rapid Boards). These Kanban boards make it easy for any team – be they in software development or customer support – to introduce Kanban practices quickly and start realising the benefits of being agile immediately.

One of the key tennets of Kanban is that you don’t start by changing anything. Instead, start by mapping out the current process and measuring it, then begin to explore areas for improvement. Kanban encourages teams to start with what they have today and incrementally improve from there – no big bang change like in a Scrum transformation.

In this post we’ll look at how teams can take advantage of the power and flexibility of GreenHopper to help them get work done efficiently. We’ll explore four areas

  • building the perfect visualisation for your team,
  • using swimlanes and quick filters to highlight important tasks,
  • limiting work in progress through column constraints, and
  • measuring and reporting the cycle time to provide predictability

We will use a team called Delta Squadron as an example. Delta Squadron is a team of several people responsible for new feature development and maintenance for a number of products.

Build the perfect visualisation

We want to ensure that the team members of Delta Squadron can easily check and update GreenHopper throughout the day, allowing them to get on with their work. To do this we want a board that maps to the teams process and supports them in delivering quality results to their customers. We’ll now explore how.

What is the workflow?

GreenHopper will map the teams existing workflow onto a board. This is is great as it is the easiest way for a team to adopt Kanban – by mapping their existing workflow. Once we have created a Kanban board via GreenHopper’s Getting Started page (JIRA -> Agile -> Getting Started) we can configure the board and add columns (Tools -> Configure -> Columns). If you are starting with a blank JIRA project you will see To Do, In Progress and Done.

If you are a small team the easiest step from here is to switch to the GreenHopper Simplified Workflow. If you are in a larger company you will very likely want to share your workflow with other teams – perhaps common steps such as ‘In Review’ or ‘Awaiting Deployment’ are shared between many teams to provide a consistent experience and language. If you’re in the second category you may want to have some commonality through a shared Workflow1 set up by your JIRA System Administrator.

The Delta Squadron team has four columns on their board: To Do, In Progress, In Review, and Done. To Do is their backlog of tasks (some user stories2, some bugs), In Progress is the work the team members are currently working on, In Review are those tasks that are being code reviewed (by someone other than the person that did the coding), and finally Done represents those tasks that have been merged into master on the repository.

GreenHopper - Flexible Workflows for Agile Teams

Note: As the Delta Squadron team is responsible for three products (JIRA Projects) they can not use the GreenHopper Simplified Workflow. See below.

One of the key things about this workflow in GreenHopper is that it is not set in stone. As the team evolves and matures the workflow can easily be amended to introduce new steps or remove existing ones. Further, teams can set up automation around each workflow step: Creating Customer Notifications with JIRA, GreenHopper, Zapier and Twilio SMS gives one example for a customer support team.

What are our tasks?

A GreenHopper Kanban board is built upon the flexibility and power of the JIRA Query Language (JQL)3. JQL enables a board to include issues from one or more projects4. For example, Delta Squadron maintains three products so they use the following JQL their board:

project in (“Scribe”, “Mesos”, Aurora) ORDER BY Rank ASC

By default the board is set up for teams that are releasing software versions, so the Work Sub-Filter includes only those issues from an unreleased Fix Version or where the Fix Version is empty for an issue. For teams that are not releasing software5 you can change the Work Sub-Filter to exclude tasks completed more than seven (for example) days ago:

GreenHopper - Build the perfect board for your agile team

We’re now well on our way to the perfect board for our Kanban team. So, what does the board look like now?

GreenHopper Kanban board - the perfect visualisation for every kanban team

How do we order the backlog?

The product owner is the team member who is a proxy for the customer. They own the order of tasks in the backlog to ensure the team is delivering the highest customer value items first. To reorder the backlog they simply drag and drop tasks within the To Do column, dragging some up and others down:

Drag user story to reorder the backlog on a GreenHopper Kanban board

Highlight high priority tasks and blockers

The ‘class of service’6 is a key aspect of Kanban. The Delta Squadron team has a class of service in place which represents an SLA contract with their customers – they will respond to any support requests within 4 hours. To visualise this in GreenHopper and ensure the team is responding to these high priority tasks first we use swimlanes.

How do we visualise high priority tasks?

Similar to the vertical columns on our board above, swimlanes cut across the board creating rows. We configure the swimlane using the following query:

createdDate <= -4h and reporter in membersOf(“customers”) and status = open

The Delta Squadron example above is just one of many that GreenHopper can support. For example, we could have different response times for different groups of customers. Further, there is an additional swimlane on the Delta Squadron board that shows those blocker issues that are past their due date:

(priority = blocker OR duedate <= now()) AND resolution = Unresolved

Note: A complete list of search options can be found under Advanced Searching with JIRA7.

How do we run the daily standup?

The Delta Squadron team uses Quick Filters to highlight those issues that have been updated in the last day, and also those that have not been updated in the last day which are still In Progress or In Review. They use the following queries:

updatedDate >= -1d

and

updatedDate >= -1d and status in (“In Progress”, “In Review”)

Quickly find issues in GreenHopper for a daily standup

Quick Filters are buttons at the top of the board to slice the issues however you see fit, adding another layer of flexibility for teams.

Finally, there is one more configuration option that is very useful, card colours.

How do we visualise types of work?

Teams may want to highlight issues that need attention using card colours. Delta Squadron has settled on bringing attention to bugs that have exceeded SLA. Their board sets the colour of the card to be green when they are stories, yellow for bugs, orange for bugs over one day old and red for bugs over three days old:

GreenHopper Card Colours - Highlight issues that may effect the Agile teams performance

Of course you can use which ever queries make sense for your team – from assignees to issue types to issue links. For another example see Visualising Epics and Dependencies in JIRA with GreenHopper and JQL Tricks.

Part 2

Phew, we’ve covered a lot of ground in Part 1!

In Part 2 of Kanban Software Development with GreenHopper’s Rapid Board we explore methods to help teams focus and build trust with customers through:

  • limiting work in progress using column constraints, and
  • measuring and reporting the cycle time to provide predictability

 

Find this useful? React on Twitter:

Continue to Part 2

  1. Sharing Your Workflow []
  2. Telling Better Stories with User Story Mapping []
  3. JIRA Query Language []
  4. GreenHopper Documentation – Configuring Filters []
  5. Releasing a Version on a Kanban board []
  6. Classes of Service and Policies []
  7. JIRA Query Language []