Slack daily standup roster randomizer

2020 April 1
not slack

Randomize Speaking Order & “Scrum Master” Function With Slack

Like many organizations hoping to do their part to flatten the COVID19 curve, Acroname has shifted to a work-from-home schedule. To provide team synchronization and alignment of daily activities, as well as bolster our sense of community, we have instituted a daily stand-up, conducted every morning.

Even though daily stand-ups are most often found in agile organizations, these types of daily meetings work great for teams using any type of planning process. We have also found that  a coordinator to run these meetings is helpful, as well as record and help resolve blocks and dependencies.

However, because we are not using a really rigorous agile process such as scrum, we do not have a permanent scrum master. Also, we realized that our previous alphabetical order of reporting was getting stale. To keep these meetings lively and also reflect our flat organization and esprit de corps, one of our founders, Jeremiah Sullenger, put together code to randomize both the speaking order as well as the “scrum master” function. 

This uses Amazon Lambda, Amazon CloudFront Events, Slack URL integration, Python 3.7 and python urllib3 (although the Python code should be useable as-is, copied and pasted into Lambda)

-------------

Find the repository here:

https://github.com/jsully-k1/Random-Roster

To implement this code, a shortcut is to use the basic AWS lambda tutorial to create a hello world lambda function, and then replace it with the code in the repository.

https://aws.amazon.com/getting-started/hands-on/run-serverless-code/

Then, add a CloudWatch Events/EventBridge trigger to the lambda configuration to run every day at the time of your choosing - ideally, a few minutes before your standup begins.

 


Then, add two Environment variables to the Lambda configuration: one is the TEAM_ROSTER (with your team members' names separated by commas), and the other is the slack SLACK_WEBHOOK_URL. Those variable names must be typed as they are seen here.

For better security, we opted to add the values to those here, instead of in the original code.

On Slack we used the incoming web-hook integration to inject a message into the channel. Navigate to the following url, select a channel, and then customize the look. The URL you're given is added to the AWS lambda Environment variable (pictured above).

https://my.slack.com/services/new/incoming-webhook/

Assuming you've completed all of the steps correctly, this should kick off an AWS Lambda instance to run your code at the time of your choosing, keeping your daily meetings fresh and lively!

Comments

Very useful little tool. It would prevent a lot of fights in my team. But why no Azure support?!

Cool script, I think randomizing or rotating standups is something many teams don't have a great process for. I wrote a dedicated Slack app called Pickle (https://pickle.bigbunny.io/) for this purpose and rotating tasks in general. You can have it rotate round-robin, pick randomly, or use a hybrid strategy that lowers the odds based for recently selected people.

Thanks for reaching out, Pickle looks like an interesting Slack application, I can see applications for handling support tickets and other things as well, like who's getting the next round at the bar ;-). I have been ribbed a "few" times about the random roster not being "random" enough. A fair picking strategy would help with that. 

Thanks for Sharing!

-J

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.