The product is an Intelligent Virtual Agent that engages with customers through multi-channel conversational interaction to resolve customer inquiries without human involvement. It utilizes Natural Language Understanding and Machine Learning to receive input from customers and make sense of it. The dialog flow manager, which is the part of the app we were working on, allows users to create custom conversations with given reactions performed by the chatbot – e.g. a reply, a redirect or retrieving information from the database.
When we were first approached by the Client, the Intelligent Virtual Agent was a work in progress and there were still a lot of elements to be developed. The Client is an expert in the field on Natural Language Processing and was working on a chatbot that, at that time, needed the development of interface.
The first challenge we had to overcome was the fact that functional requirements were not clear enough to be interpreted correctly. When requirements are unknown or not specified, it’s difficult not only to estimate to work needed to be put into development but also to start the process overall. That’s why it’s important for us to help our Clients crystallize their expectations before the project kicks off, so there is no room for misinterpretation of requirements and no time is wasted.
In case of this project, there were only some ideas as to what the end result should look like. The project was turned out to be a perfect material for the product design at its best – from the sole idea to a working product.
The Client needed help with the UI/UX side, having only some wireframes of what the product should look like. Our team advised the Client and collaborated on that portion of the app to make sure that it met all the expectations. Defining the requirements was not a one-time job, though, as our team often suggested what can be added or improved in the app, and helped define new requirements. As the project was limited in time and needed a specified end result, we had to think of the best ways to approach the issues and manage the expectations towards the project. Setting the right priorities and developing the elements that really matter in the first place helps set the path for the development process.
Another challenge was that the product had no existing interface at that time. The Client is a specialist in their field, NLP, but they didn’t know how to approach the UI/UX part of the app. They had some ideas of what they would like, but nothing was clearly specified at the beginning. Working together, we’ve managed both to specify what exactly had to be done and define proper requirements and to design a dialog flow that satisfied the Client’s needs.
Since the Client was based in Australia and our development team works in Poland, another challenge we had to force was the time zone difference. Despite this difference, we were able to find time slots that were convenient for both parties and our communication and collaboration were not affected by the fact that we’re based in different time zones.
Before we could set off with the development process, we had to make sure that all the requirements were clear and well-understood by every team member – both on the Client side, and within our team. To achieve that, our developer discussed all of the needs and expectations with the Client to be able to fully understand what had to be developed. Clarifying the requirements and backlog grooming allowed us to begin the development process smoothly.
Our team’s engagement wasn’t restricted to building the app’s functionalities as they would often come forward with ideas on the shape of the app. We were able to build a prototype that satisfied the Client’s expectations, and then continue working on the application. The dialog flow manager built by our developers is a tool that allows users to design dialog flows between the customers and the chatbot. Users can utilize pre-defined elements to provide the chatbot with a set of reactions to given utterances.