Giter Site home page Giter Site logo

idagio-standup's Introduction

Tilly

The Slack stand-up bot.

by Dan Brown [email protected]

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.

idagio-standup's People

Contributors

giladgotmanaltran avatar joluet avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.