Working in geographically dispersed team creates additional challenge. Daily scrums usually involve some online video / chat tool, need special / extra room with equipment, setting up and collecting all people there. That can add to standard 15 minutes even next quarter and can hinder organizing stand-up in the time convenient for the team, especially when members don't start work at the same time. All that causes daily scrums often catch developers in the middle of their best concentration time in the morning, break what they work, switch context to stand-up and after - switch again and get up to speed with work.

  • An hour of best time lost for development. The way out could be asynchronous stand-ups. Dedicated channel on Slack is very well suited for this purpose.

What it does

HABBY is to facilitate daily check-in – as soon as somebody logs in, they should answer "3 scrum questions" on a dedicated status channel. And before logging of, say bye-bye to the team. Additionally, that can serve also the purpose of time tracking, both personally ("I need to leave early, will catch up tomorrow" scenario) and for managers.

How I built it

Used Serverless framework. Integrated Slack Events API for handling incoming messages. Cron'ed call to Slack Web API for checking presence of users. Redis for persistence.

Challenges I ran into

  • Adopt with Serverless Architecture and  Serverless Framework 
  • Configuring API Gateway for Slack App authorization (esp. redirection)

Accomplishments that I'm proud of

  • Slack integration
  • Simple but usuful bot experience for user

What I learned

  • Serverless architecture
  • Learnt new AWS Lambda,  API Gateway
  • Pros&Cons of AWS Services

What's next for HABBY

  • Using HABBY in our team and more features (BRB, holidays, responses to reminder about check-in, learning bye-bye and other phrases )
  • Using experience for Alexa integration :)

Built With

  • aws-lambda
  • node.js
  • redis
  • serverless-framework
  • slack-events-api
  • slack-web-api
Share this project: