Flow metrics for GitHub Issues

Earlier this month I came across a blog post from Kevin Chant, detailing how you can create a Power BI report for both Azure Boards and GitHub. I was surprised in reading to see that there was GitHub connector available in Beta for Power BI Desktop.

Screenshot 2021-07-25 at 11.41.42.png

Not sure how I had managed to miss when the connector had become available, it led me to to think about creating a version of FlowViz where you could connect to a repo and generate flow metrics for your GitHub issues.

This month I also came across the announcement of GitHub Issues. This appears to be GitHub’s new product to take on well established tools like Jira and Monday.com, however marketing it as “Project planning for developers” rather than the previous tools which tend to be more for those managers outside the teams actually ‘in the work’.

It’s also interesting given Microsoft, who acquired Github in Oct 2018, already have an established tool out there in Azure DevOps which, in my eyes (and the eyes of others in the community) has significantly slowed down the number of new features being rolled out. It looks likes this could be the first step in the end of Azure DevOps and therefore hastened my thinking around creating an alternative version of FlowViz for GitHub only.

Whilst I waited for my beta access to preview GitHub Issues, I set to work on creating something that could get FlowViz ahead of the curve and be consumable by everyone using GitHub right now.

The connector is pretty easy to get started with, you add in your repo details and, if it’s your first time using it, will also have a GitHub web page login appear as a popup. It’s cached in Power BI so you don’t need to do it every time) thankfully.

You then get a selection of tables containing data on Contribution Punch Card, Contributions, Issues, Milestones, Pull Requests and Repo Details.

For this first iteration I decided to keep it simple and focus on Issues only. Data on commits (within the Contributions table) may be of use for the future, but I am not too sure what would aid teams. If you have ideas please comment below on what would be useful.

I settled on reworking the fact that FlowViz mainly uses InProgressDate and CompletedDate from the Odata API for Azure DevOps to use the created_at and closed_at columns from the GitHub connector.

This would also mean reworking some of the charts as, just because something is ‘open’, doesn’t mean it’s being worked on/in progress. Future feature request from me would be for there to be a new state/state mapping added of ‘In Progress’ for people to add when they actually start work on an Issue, but I had to work with what I had.

I also had to add in a date table, as there is nothing in the connector that provides this, as well as create a relationship between the date table and the issues table(s) in order for slicing on the data by data range to work. Fortunately I could mimic how this had been done using the original FlowViz, creating DateSK and CreatedDateSK/ClosedDateSK columns in the relevant tables.

Given it’s a template, parameters are also necessary to allow users to connect to their own repo and load the charts. This was pretty straightforward to do, having learnt a great deal from Guy in a Cube around how to do this previously. I jazzed up the wording and gave a bit more steer to users around what they should enter in the relevant fields.

Load 1.png

As this is the first iteration of the template, and the limitations we have around the dataset, I went with a simplified version of two pages and six visuals, consisting of:

  • Issue Age - how long have issues been open for

  • Throughput - number of completed issues per week

  • Lead Time - how long (in calendar days) from issue created to closed

  • Net Flow - how many issues are closed vs. opened per week. The difference being the ‘net flow’ - blue meaning more completed than started, orange meaning more started than completed, with the goal of getting consistently at or around 0

  • When will it be done - based on the rate at which issues are closed (Throughput), given a number (determined by the user) of n issues, how likely (%) are we to complete them (in number of weeks)

  • What will we get - based on the rate at which issues are closed (Throughput), given a number (determined by the user) of n weeks, how many issues are we likely (%) to complete in that time

FlowViz GitHub Page 1.png

The resulting charts therefore give some indication to the individual(s)/teams who own the repo around their flow of issues and potentially nudge them towards where they might want to improve, as well as some predictive analytics for the future should they need it.

The FlowViz for GitHub template is available right now to download here. I’ll continue to tweak it in the coming weeks/months with new ideas/features, hopefully getting ahead of the curve with the wider GitHub Issues rollout. Feel free to reach out/comment below if you either use and/or have any ideas to make it even better for people. Enjoy!