This article describes improvements to Agile methodology done by one of the App Connect development teams that use Integration concepts and products and that are particularly well-suited for a remote working environment.
Kanban is a well established and widely used method to manage and visualise work across a team. The method aims to manage work by balancing demands with available capacity. Physical Kanban board, populated with colour-coded post-it notes, have many documented advantages. Among others, it is easy to see the position of an item in the workflow and the colour is typically used to mean something: maybe the degree of urgency, maybe the sizing. You can see at a glance all the red items of work, whatever red might mean in your case, and see where in the workflow these items are and how many you have.
Figure 1. Kanban board (Photo Credit https://www.ionos.com/digitalguide/websites/web-development/about-kanban/)
However, when the definition of work exists in a variety of systems such as Github issues, Asana tasks, ServiceNow tickets, Salesforce leads, mapping these issues to post-it notes is time consuming and error prone. In addition, with everybody working from home, this method does not work.
We will first consider the case when the work a team needs to achieve, the new function to implement or defects to fix, is stored as Github issues hosted in a number of repos. A couple of dozens of repos containing work is not uncommon.
As the main source of work for the development team are GitHub issues describing either new features, bugs, chores, support tickets and more, we will focus on this use case first and will cover later the case when the source of work is defined in other systems.
For managing Github issues across multiple repos the obvious solution is to use Zenhub®. Zenhub is a project management tool for Github that is used to define task boards and workflows. Critically for the solution described here, a repo can now be part of multiple boards making it possible that shared repos to be part of different squads’ boards. Labels on issues are widely used. They might describe squad ownership or level of severity or the component to or the release it is aimed at or any other category
However this loses some of the advantages of the Kanban board, the ease of seeing items belonging to the same category and the possibility of a quick evaluation of issues belonging to a given category.
Our solution uses a combination of Github repos, Zenhub and our own browser extension to retain most of the advantages of the Kanban board and the Agile practice of the funnel of work, while leveraging some of the integration advantages and being suitable for remote working.
Overview of the solution
Briefly, the solution consists of defining new Zenboard with the workflow applicable for the team, and adding all the repos from where work for the team can be defined and defining any filtering labels such as team name that identifies all the issues for the board.
Then configuring the browser extension to make use of the labels to define the colours.
A step by step guide is available here https://agile-ibm.mybluemix.net/expertise/methods/zenhub-for-wall-of-work
Here is a sample of the method in action:
The new browser extension (lhttps://chrome.google.com/webstore/detail/zenhub-colouring/mfodgjcicmhkkijkagclkhgpfnedicie?hl=en) adds to the Zenhub board the benefits of the Kanban with coloured post-it notes used to represent different things: stories, production defects, chores etc.
The plugin maps labels to colours. You can use the classic traffic light colours as in this example to show urgency or you can use additional colours. Additionally, you can use any other colour code that you may want.
You can, of course, run different data tools to analyse the structure of the work of a team like how much planned or unplanned work a team has, or how many interrupts. This method makes it possible to see this as a glance “how much red do we have at the moment” could represent the urgent, unplanned work. How much technical debt i.e. yellow cards are we planning for this method? It is a helpful visualisation.
While the method has been developed before the pandemic it is particularly well suited for remote working with team members looking at the same board without the need of sharing the screen or extra coordination.
Labels are keys to make this work, both to have issues in the board and to drive the colours according to the visualisation rules.
The labels can be manually added, created as a template on the repo or being added from an App Connect flow.
Automatic issue creation and labelling using App Connect
As an aside, note that this is a funnel of work, if displayed horizontally rather than the most common upside down.
- Add template to the issue created on a repo. The team label can be automatically added to all issues from the repoes that the team owns.
- On creation of an issue, use certain rules to add labels. This can be implemented like an AppConnect flow. If the work is in a Github issue the flow can be triggered by a GitHub webhook and labels can be added using a HTTP node that calls Github APIs after analysing attributes of the issue such as description text and applying specific rules.
- If the work is in a different system such as Service Now, Salesforce, Asana task or Trello items, you can have a trigger from these systems and an action node that creates a GitHub issue with different label.
It is also helpful that repos can be part of multiple boards. Shared repos can be part of multiple teams boards.
A combination of different tools Github, Zenhub, App Connect with a custom plugin means that benefits of Kanban can be preserved when working remotely as we all do at the moment.
This method was developed by team Supro of App Connect with special contributions from Chengxuan Xing and Alex Wood.
In a future post, we'll look in more details as the usage of AppConnect flows that create issues, add labels and check other consistency rules to enhance this way of working.