Working with Slack bots and humans to develop software
Slack is a demonstration of how our society has evolved, where artificial intelligence has a place because of the unlimited possibilities with its integrations to activities of real life. This possibility allows us to work not only with humans but also with bots that you can talk, ask favors to execute something or provide a report.
We are a small team of 10 people, where most of us work remotely and Slack is our virtual office. We communicate and coordinate our work using slack, but we have recently started to work more often with bots on a daily basis, asking bots things like:
- Deploy this website.
- Create this task.
- Tell me the status of this task.
- Schedule a meeting.
- Remind me about this,
What is a bot?
A bot is a piece of software that interacts with humans through an interface. A slack bot is just a bot inside slack.
To work, the bot needs a client interface to receive orders and communicate back to the human. This interface can be a chat program like Slack, a mobile phone, a computer or a special device like Amazon Echo, Google Home, among others.
A bot is essentially the software, which is available for different platforms in some cases.
How are the bots integrated into my Slack workspace?
We love Slack, this is our day to day for work. We spend the day there communicating with teammates, coordinating projects and we always try to integrate everything there, so we don’t have to leave Slack to get notified about an external too.
The bots are added to our workspace when we include some of the integrations we use as a development company. Some of these integrations that come with a bot are:
- Jira: Create tasks and see the status of my projects
- Geekbot: Runs our daily standup meetings in an asynchronous way.
- Paperbot: keeps track of all the links we share on the channels and organize them automatically.
- Karmabot: Team performance tracker
- Github: Notifies about the changes on our Git repositories
- Todobot: A simple alternative to handle tasks.
- DeployCloud Bot: It deploys our websites and reports back the status of a deployment.
Almost any slack integration comes with a bot, so find yours depending on your needs
Do I really need a bot?
Initially, I didn’t pay special attention to bots, I didn’t find any reason to use them, I just wanted to be able to get notified from external tools and in some cases communicate to that external tool from slack, so for me, incoming webhooks and slash commands were everything I needed.
Soon I realized that having slash commands was not so natural and hard to explain to a non-technical user. So here is where the bots come, a representation of an employee that I can ask stuff and request things. I can talk to the bot privately or invite him/her/it (whatever you think a bot represents) to a channel.
When to use a slash command or a bot?
Commands are like instructions to machines, so maybe a developer will feel very comfortable with a slash command and multiple parameters to send instructions to perform a task. Normal people prefer to talk to people instead of machines. It means normal people will prefer a bot to ask questions and collect information on what you require. In this image, you can see a conversation with a bot to feedback for the weekly retrospective meeting:
In this case, I’m not requesting anything to the bot. The bot started the conversation by asking me questions and then It will consolidate the information so my teammates are informed. Using this tool we replaced a long weekly meeting for something that you reply in 5 minutes.
Which advantages can you get from a bot in a team?
- 24hours availability.
- No feelings.
- Give orders to external tools without leaving slack.
- Get notifications about what happens in the external world.
- Reduce the human error probabilities.
Are we close to be replaced by bots in the work? will our next manager be a bot? Are we going to validate Asimov’s Laws soon? Personally, I don’t think bots could replace people yet, but they are definitely helpful at work. Wha do you think?