Getting sick is easy, be it that your toddler brings home all kind of diseases from the kindergarten or you have an ongoing pandemic with a highly contagious virus.
During the last year I had to take care of my son multiple times and sometime got sick myself afterwards. During some retrospective meetings we had identified that there were several tasks which could have been easily picked up by other team members but due to daily business where not reassigned. There came the idea how to pick up easily such tasks...
What it does
SickLeave helps you to get a list of work items which are assigned to you during a period. Just use the "/SickLeave" command and the app will ask you how long you are gone (start/end date). The app will then look in Azure DevOps for sprint iterations in this time span and print a list of work items from those iterations which are assigned to you but not yet done.
Your team member can just click on the link and open the work items in Azure DevOps to reassign them.
How we built it
SickLeave was built as a slack command which uses Azure Functions as a backend. The Azure Functions use CosmosDB to store information and communicate with Azure DevOps REST API to retrieve work items. For CI/CD we use GitHub actions.
Challenges we ran into
The biggest challenge was some misbehavior/strange behavior of the Slack API. Luckily Sandra from the Slack team found a good workaround. Also, during the project, I had to change from a Windows development machine to a macOS based development machine, which was quite challenging at the beginning. Also, as a backend developer with really no design skills it was challenging to create an app logo.
Accomplishments that we're proud of
I'm always proud to get from an idea to a working MVP. It’s also my first Slack app.
What we learned
This is basically my first chat bot, so I learned a lot. It was quite interesting to develop the onboarding process, like authenticate with Azure DevOps, select the Azure DevOps account, project and team where the app should look for work items.
What's next for SickLeave
There is a lot which could be improved, like allowing other team mates to pick work items directly from the Slack chat - not just clicking on the link to get the work item in the browser. Also, the integration of other platforms like GitHub or GitLab would be great.