Recently, I was a coach at a hackathon in Germany. Students were tasked to build solutions for a given topic and the solution had to include a chatbot based on the IBM Watson Conversation service. It was impressive how broad the solutions were, what other services were integrated with a chatbot and how easy it was to build a solution using IBM Bluemix. The following “lessons learned” and tips are from my work as coach. They hopefully help you design your own great chatbot.
Hackathons are intense events and require sharp focus and quick decisions. They pack everything from finding the right idea (brainstorming), defining a solution, its users and development phases (using Design Thinking) to building a prototype / minimal viable product (MVP) and pitching it. The first lessons learned and tips deal with the conversation, the dialog, the language itself:
“Language as an aid“: When designing a chatbot-based solution, using written / typed language as the user interface should bring a value and simplify interaction, not complicate it. So consider when does a conversation help and where is “clicking around” the smarter approach? As an example: It is faster to type “next train from here to home” than to click through a structured menu.
“Appropriate Language” and “Know your audience“: WHO is the target audience of the envisioned solution? Do they speak English, Spanish,French, German or other languages? Check the supported languages for IBM Watson Conversation and choose the language for your audience. At my recent hackathon chats in German (as local language) instead of English impressed the jury.
“Appropriate Language” and “Know your audience“, again: Who is the audience and what language, which wording are they using? Is the bot facing users with a special vocabulary? Design the dialogs accordingly. Sometimes humor and tongue-in-cheek may add to a solution.
“Design the dialog“: The dialog is a very important part of the chatbot-based solution. Thus, it needs consideration and hence some design work. Think about the flow of conversation. How do you carry context through phases of the dialog? When and how do you want to end the chat? Providing just the timetable with the next trains might be good enough. But offering help to buy a ticket including guidance through tariffs might be the real value of a chatbot.
The next few topics discuss programming and deployment options:
“User Interface” or “Messenger Service“: A chatbot could be an app of its own, but often they are a non-human user in messenger or communication systems like Facebook Messenger, Slack, Telegram, Twitter, and many others. How do you reach your audience? You probably need to look at factors such as higher value and quicker implementation.
“Coding Framework“: How do you want to code the chatbot? There are many options, such as the botkit-middleware for Watson Conversation, nodes and flows for the Node-RED flow-based programming environment, samples in different programming languages on https://ibm-bluemix.github.io/ and the IBM Watson Conversation page, and many more. The selection may depend on what other services, data sources, etc. you want to integrate. Some services might only provide SDKs for certain languages. Is the goal a quick prototype for the hackathon or are you planning longterm? Does the chosen approach support use of a toolchain and source code control on GitHub?
Microsoft ended support for the .NET Core 1.0 RC2 runtime on September 27th, 2016. We recommend that users upgrade existing applications that are still using this runtime to other production-ready runtime versions already available in Bluemix.
This how-to creates an example app using Java, Cloudant, and Watson. Imagine that you're a talent manager at a growing tech startup. You're looking for a new hire that would be a good fit on your team but the company is so popular that you have a huge inventory of resumes to sort through. With Watson services, you can solve for a problem like, “I’m looking for another developer like “[insert cool employee]” or “Find me a Developer like Craig Smith”.
We're excited to announce a new domain for all of our user applications: mybluemix.net. The new domain will help isolate Bluemix core components from the applications you have running on the platform. Going forward, [yourapp].mybluemix.net will be the default domain for any new applications you create in Bluemix.