Building Standup Roulette

Amruth Pillai - Jun 23 '21 - - Dev Community

At Grover, in my squad, like most squads, we do stand-ups every day. To make things interesting and to keep the whole team active, we suggest to have different hosts every single day within our team. Someone to run through the Kanban board and take down action points.

For a short while, we were doing this manually, where we would nominate someone at the end of the call, which was going great, but it has its pitfalls. Like not remembering who we nominated the previous day, or forgetting to nominate someone altogether.

Hence, Standup Roulette was born.

This is a simple Node.js script, hosted on Pipedream, that runs about 30 minutes before our actual stand-up, which does the following:

  • Get all members of our Slack channel
  • Exclude members who are on specific schedules
  • Pick a random announcement message, replace the placeholder with the user ID
  • Post the message on Slack

In the meanwhile, it also makes use of Pipedream's workflow-level state management, $checkpoint, so we are able to store information across runs. So I simply store an array of history which contains the last n - 1 user IDs who have already hosted recently, where n is the number of members in the channel.

This history array is also appended to the exclusion list so we don't get the same person hosting twice in a row, or too often.

You can check out the Pipedream workflow we use right here:
https://pipedream.com/@AmruthPillai/standup-roulette-grover-x-squad-scheduled-trigger-p_n1CowNy

Try it out at your workplace as well and let me know how it goes!

Thank you for reading.

. . . . . . . . . . . . . . . . . .
Terabox Video Player