Saturday, June 15, 2019

Reason for technology failures - chat bots, video conferencing, or you name it.

Every so often, I come across articles explaining why a piece of technology failed. For example, why chat bots failed in 2018, or why video call did not work for customer support. I think the answer to these and other similar questions can be attributed to three points: (1) not a holistic approach, (2) wrong audience, (3) unreasonable expectations. Let me elaborate further.


1) Not a holistic approach: Communication has not failed and will never fail. People (and machines) have always and will always communicate. Nevertheless many communication tools and technologies are considered failure. Because communication is not a problem to be solved. Budget shopping is a problem to be solved. Getting prompt health advice from a doctor is a problem to be solved. Finding affordable housing in a good place is a problem to be solved. Arriving at a decision in a corporate meeting is a problem to be solved. A shinny new responsive-designed web and mobile app for a hospital alone does not solve the problem of getting prompt medical advice. A brand new multimodal multichannel ubiquitous video conferencing system does not magically create efficient corporate meetings. As for the chat bots' misfortune, the problem was to efficiently and economically resolve customer problems, and chat bots were considered a solution. This is like when someone wants to live in a tree house, you her offer a boat that can be put on a tree. What more? You tell her that it will not work on short trees, or near a river! Mobile apps, web pages, chat bots are just tools. Tools that solve a problem only in a specific situation, or only a part of the problem, and can only be marginally successful in the best case if used alone. A tool or a piece of technology can only solve a subset of the problem, but a business that relies on that ought to consider the problem as a whole.

2) Wrong audience: Often times a solution is created by or created for one group of people, but used by another. This may or may not be a good thing depending on how you measure success. A chat bot that can reduce the call volume to humans is good in cost saving. But it may result in customer frustration, which eventually reduces the business (which is failure), while continuing to improve the bot to human chat ratio (which is success). A new chat bot to book flights on an airline may streamline the booking process or save some administrative cost (which is success), but may not address what most of its customers want - which is to compare the costs among airlines before booking - resulting in lower revenue (which is a failure). Eventually, the new but not trivial way to book flights on their new chat bot loses its appeal, and the customers move on. When writing software or creating applications, one should think from the point of view of the business. Otherwise, the business failure will eventually trickle down to the software. In the real world, one size does not fit all. Moreover, it is hard to write the business objectives in stone, that will not change, especially for small teams and startups. If the software system is flexible to handle range of customers or scenarios, then there is higher chance of success. In that case, even if a failure happens, there is higher chance of quick recovery from intermediate failures.

3) Unreasonable expectations: Change is usually incremental and slow. Once is a while we see a revolution. Those are exceptions. Hence, success should also be measured at the same scale and speed. In the era of instant gratification, quick turn around and fast return-on-investment, people have formed a habit of unreasonable expectations. If something did not behave exactly as we planned, it is termed a failure. If something did not reach a milestone in the time we set, it is termed a failure. If we step back, many times we will realize that the deadlines were arbitrary, or the desired behaviors were unreasonable, or even if they had behaved in the expected way, the eventual outcome of “success” vs “failure” would have been the same.

If we believe that failure is required for success, then things that have failed are also successful in contributing to the future success. Medicines are successful in preventing and recovering from some health problems. Germs are successful in getting rid of the weak specimen, and in evolution of the strong species. A chat bot that went bigot or racist is successful in understanding the evolution of human (or animal) behavior, when there is no empathy or conscience. A tool is rarely a failure, only that it gets in the hands of  the wrong audience or has wrong expectation.

So, what is the conclusion?

Nothing, really. But there are some advice, especially for small startups working on new technologies.

First, think about the holistic approach to the problem space, even if you are attempting to address only a part of it. Second, prepare the system to benefit the end users first and foremost, even if the end users are not the direct customers for the company. Third, be prepared for many failures, but design the solution to be flexible enough to easily cope up from such intermediate failures.

What does this mean? For designing a chat bot, you ought to think in terms of the time that the end user will save in getting answers to specific as well as vague questions, instead of thinking in terms of how many chats were answered by bots vs. humans. For video conference, you ought to think in terms of how the users will benefit from video in what they are already doing, instead of thinking in terms of screen share, white board, notes taking tool, and not to forget, chat bots. It means, to be agile, accommodative and flexible, to be ready to deliver numerous scenarios, instead of putting all the eggs in one or two use case baskets. At the software development level, it means picking flexibility over rigidity, doing rapid prototyping with quick customer feedback instead of six-month projects with rigid goals.

No comments: