Have you ever wished you could early detect pull requests getting abandoned? Or spot when a specific stage of your development is getting stuck (e.g. peer reviews)?
Well, here it is!
The Activity Funnel is designed to show you the daily changes in your development pipe, exhibit the activity level of each stage and and highlight items that deserve attention.
It is the perfect view to detect anomalies before they start impacting your development funnel as a whole.
Example: In the picture above we can see that reviews (middle column) are getting stuck. Not only the count of PRs pending review hasn't changed over the last two days (total count / purple line) but also all these PRs have been left untouched for more than three days (paused count / orange line).
Looks cryptic? It's actually quite simple. Let's break down how the funnel is built.
The stages displayed in the Activity Funnel are the ones configured in your Team Board.
If you use different development stages, simply edit your Team Board columns and the Activity Funnel will automatically adjust.
Activity levels: Active vs Paused vs Stale
The Activity Funnel breaks down pull requests and issues in four different activity levels:
- Active (purple): The item has been touched less than 3 days ago.
- Paused (orange): The item has not been touched for more than 3 days. This probably means no one is currently looking at the item.
- Stale (red): The item has not been touched for 30 days. This means the item has been forgotten. It should be parked (removed from the team board using a label filter for instance), resumed or closed so as to not clutter your development funnel.
- Done (green): The last column of your funnel will always be considered as a completion stage and items in it will always displayed in green.
For the definitions above, touched means:
- Any update on the item (title, description, label, milestone)
- Any comment added on the issue or pull request
- Any peer review made
- Any commit pushed
The activity charts
How to read the charts?
For each stage the Activity Funnel shows the evolution of the number of total, paused and stale items over the last 2 days (today, yesterday and two days ago).
Here are a few ways to read the in review chart above:
- Today we have 4 items in review
- Amongst which 4 of them are paused
- Amongst which 2 of them are stale
- Yesterday we had 4 items in review
- Amongst which 2 of them were paused
- Amongst which 2 of them were stale
- The situation didn't change between yesterday and 2 days ago
- Two items moved from active to paused between yesterday and today
- As of today, all our items in review are paused
It is to be noted that metrics are based on "end of day" (midnight) values in your current timezone.
Getting a visual feel
The metrics are inclusive of each other (total >= paused >= stale), which means that briefly looking at the amount of "purple" vs "orange" vs "red" will give you a pretty good idea of how things are going.
You guessed it right! The stage above is fairly cluttered:
- Most pull requests in review are stale. There is clearly a blocker going on a given project or set of reviewers.
- Even more reviews are being requested (total number of items rises). They might not get addressed considering the current state of things. This may add more clutter.
On top of showing activity trends for each stage, the Activity Funnel also provides the complete list of items currently at hand.
Clicking on a specific stage will filter the pull requests and issues to the ones matching that state. This is useful to get the details of what's going on with a specific stage of development.
For each item you will see:
- The project, type (issue/PR) and name of the item.
- The current activity status. You can hover it to get the history of statuses over the last two days.
- The required action (inferred by Keypup)
- The expected actors (inferred by Keypup)
- The due date, in relative time (when one is set)
You can always get the full details of a given item - such as comments and related issues - by clicking on it.
This lets you drill down to the very bottom of blockers right from the Activity Funnel. You can even leave comments on stuck items and ask people to action them!
Because they never hurt!
The Activity Funnel lets you explore anomalies in a top down fashion. You start from the overall health of your pipe and drill down step by step to investigate blocked items.
It is a powerful tool that is best used on a regular basis, so as to quickly detect what looks "normal" and what does not.
Follow the protips below to best setup and use your Activity Funnel. Once used to it, you'll never want to work without it 😉
Protip 1: Get rid of initial stale items
The first time you look at the Activity Funnel, you will probably see quite a few stale items. It's alright we all have those!
Let's be honest: items which have not been worked on over the last 30 days are probably not going to be resolved anytime soon. They create noise and add no value.
We recommend you either:
- Close them
- Assign a parked label to them then edit your Team Board columns to filter out all pull requests and issues having this label.
Once you have dealt with the initial stale items, you should never have to deal with them again, because...
Protip 2: Investigate paused items as they appear
Paused items (orange metric) should be investigated as they appear. If a pull request or issue has had no activity in three days, it means it's losing momentum.
The current assignee(s) should at least leave a comment on the PR or issue to give a status update.
Protip 3: Purple flat lines means you're sailing smoothly
As long as there is no orange, it means things are moving continuously. Flat lines means your flow velocity is stable. Good work! 👏
But wait...why are purple flat lines a good sign? Let's take some concrete examples:
- John assigns a reviewer on his PR. The PR therefore moves from in development to in review. The count of items in development goes from 5 to 4.
- John immediately starts working on a new PR from the pool of issues in Todo. The count of items in development goes from 4 to 5.
- Conclusion: At the end of the day the count of items in development remains at 5. John was not blocked getting something new to do and could immediately start work. This is good news!
- John assigns a reviewer on his PR. The count of items in review goes from 2 to 3.
- Clara has the habit of reviewing "one PR a day at lunchtime". She decides to review the oldest PR in the pool and approves it. The count of items in review goes back to 2.
- Conclusion: There were as many new peer reviews than peer reviews completed. We are therefore sailing smoothly.
Protip 4: There is no perfect funnel
The objective of the Activity Funnel is to give developers a hunch about things that could go wrong or help decide when a "push" is required on a particular stage (e.g. "let's all take one hour to get these peer reviews done and merge afterwards").
There is not point in trying to optimize the "shape" of your funnel from the start, because there is no ideal shape. It all depends on your team's habits.
Just look at your Activity Funnel on a regular basis (2 minutes every morning or evening is enough) and you'll quickly see when things look right or wrong 😉
That's all for now folks. Of course we'd love to get your views on this new feature of your platform, and as usual we are more than happy to take any suggestion for improvements that you may have. Don't hesitate to share your feedback with us at email@example.com .