Skip to content

madebymany/tilly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tilly

The Slack stand-up bot.

by Dan Brown dan@stompydan.net

We had a good look around, and existing stand-up bots are very command-driven. They are aimed at people comfortable with even the idea of a bot, and issuing it commands to it to start a stand-up, update the stand-up, and so on. This is fine for developers or other technically-minded people, but not so much for everyone else. So Peter had the idea of a stand-up bot that

  • Starts automatically at a particular time of (week) day;
  • DMs everyone in certain channels and asks them for updates, asking a question at a time in a conversational style;
  • Lasts for a given length of time (probably half an hour);
  • Reminds people over that period if they haven't completed their answers;
  • Allows people to skip stand-up for that day;
  • And when then stand-up is over, either because everyone has responded or the time is up, posts one message in the channel summarising all responses.

We couldn't find anything that did this, so I made Tilly. The Weimaraner stand-up bot.

Status

Note this is an experiment, not a polished product. Almost nothing is configurable because it's set up just for us at the moment and I prioritised testing by one team here over making it friendly for others - but clearly making it more configurable is not a big job. There's a couple of rough edges we've found as noted in the issue tracker.

Code

Uses godep. Please keep its config file up-to-date with dependencies you use.

I switched to this fork of this Slack client library because it doesn't exit(1) if things go wrong with the RTM connection. Also it appears to be faster.

The program is designed to run once for a day's worth of stand-ups and then exit. It should be scheduled by cron or similar.

## Running Suggestions

Currently we're using Heroku to run Tilly. Heroku supports Go projects now, so all you'd have to do is:

  • Clone this repository
  • heroku create tilly-$myorg (give it a nice, but unique name)
  • Create a bot user in Slack and note its token
  • heroku config:add SLACK_TOKEN=$bot_token (substitute in the token from the previous step)
  • Probably heroku config:add TILLY_WEEKDAY_ONLY=1, unless you work weekends (the Heroku Scheduler doesn't discriminate on days of the week)
  • git push heroku master to deploy and build Tilly.
  • heroku addons:create scheduler to add the Heroku Scheduler to this app
  • heroku addons:open scheduler to open the Web interface.
  • Add a task to run Tilly on the schedule you decide. She will run a standup for all channels she has been invited to. The command line to run is simply tilly. Note the times are, annoyingly, specified in UTC. Add a reminder in your calendar to update it when daylight savings kick in!

Future versions may well allow for configuring the scheduling in Tilly (through commands in Slack or whatever), but this is a test for us and we wanted something simple. Also, it's cheaper this way as there isn't a dyno running 24/7.

About

A Slack bot to run standups, with no weird commands to remember

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages