The general thought is that robots (bots) are a futuristic reality, in which we recall jokes from The Jetsons or scenes of the Matrix appear in our heads. But the reality is that we are already beginning to see bots used more and more in our daily activities. We at SoftwareDevTools are focused on tools for remote agile teams, and we have built 'Stand.Bot', a slack-bot for asynchronous stand-ups.
You can “chat” with your departed loved ones on Luka, Telegram is seeing a lot of different offers for its platform, Slack is offering an investment fund and Microsoft CEO Satya Nadella declared, “Bots are the new apps.” For many of us that work in the technology space, bots are part of our work space.
In recent years bots have been just “a little” over-hyped with posts in Inc. Magazine, VentureBeat, and with TechCrunch’s long list here. The reason why is that bots have a lot of potential for many use cases in different verticals.
For remote teams, we have bots like Roomino that help teams plan their business trips. A developer focused service is Stand.Bot which enables a team to do standup sessions in a Slack Channel. If you use JIRA, you can install a Slack bot that provides information on JIRA issues inside a Slack channel. These examples are just the tip of the iceberg of how a remote team can collaborate and communicate through the help of bot services.
Under the hood of a bot.
Before diving deep into how bots can help us in our daily activities support our remote teams, we want to share with you the different types of bots, and most importantly, how they are built based on the specific problem that’s to be solved.
While there are many aspects to consider when building your own server, or even if you’re just planning on using one, the essential aspects to take into consideration are:
- Voice interactions
- Applying AI, Machine Learning & Automation
Bots can have meaningful conversations.
Conversation is an essential aspect behind all bots because they need to understand what the user is typing and recognize their commands. Be careful of the buzzword “conversational,” it is widely used and many services claim to have built a “conversational bot.” To help straighten out the facts, we’re referencing this talk from Cathy Pearce in BotDay.
Cathy emphasizes that for a bot to be conversational it has to comply with the following characteristics:
- Two Turns — The bot has to provide a follow-up question during the first user interaction.
- Has a Memory — The bot knows what was talked about recently and has context surrounding the conversation.
- Multiple ways to refer to things — For example, a bot can recognize burger, hamburger, and BigMac as the same thing.
This cannot be stressed enough — in order to develop a verbose interaction with a bot, it needs context and the right set of interaction schemes in order to provide a good service to its users. The bot will need a basic set of action items that it should keep in mind when interacting with the user.
When we talk about “two turns” it is a replica of a normal human interaction when you establish a conversation with another person. You open the conversation and then you interact with affirmations or questions around the topic being discussed.
Keep these three rules in mind when developing a bot’s interaction use cases:
- How people will talk to the bot.
- How the bot will talk to people.
- How the conversation can continue.
Talk is cheap, but bots are not
Voice is always a tricky subject when it comes to user interfaces. When you set out to build a Voice User Interface (VUI) it’s likely that you’ll have to build on top of existing platforms such as Cortana, Alexa, Siri, Viv, Google Now (which will disappear soon) or Google Assistant.
To build a successful bot you need to understand which of the platforms mentioned above will provide the right functionality for the end user. If you are embarking on a quest to build a great VUI experience these tips will help:
- Remember that speech is still in the early stage.
- You need to test each Software Development Kit (SDK) with your end user in mind.
- Learn how to handle the situation when you cannot understand the user.
- Voice is not ideal if you want to list items.
- Always prompt the user during critical steps of the bot service.
So, get started and build step-by-step with the end user in mind. Create a bot that they will be pleased to interact with Cathy’s great piece of advice,
“Design for how people actually talk, not for how you want them to talk.”
Stay tuned for Part Two, a deep dive into AI, Machine Learning, Neural Networks and more.
:) Happy Planning!
PS. If you are part of an agile remote team, Try out the agile estimates add-on we have built for Confluence :).