Blog: UX, AI and keeping humans in the loop
If you’re in the business of automation, a simplistic view is that you’re in the business of destroying jobs. As someone who is in that business and doesn’t like the idea of destroying jobs, this can be hard to make peace with.
Dollars saved are proportional to hours worked by people
For the last four years, I’ve worked on technology that designs fiber optic networks (when I mention ‘design’ in this article, I’m mostly referring to the design that is the output of an algorithm, more context here if you’re interested). Our whole value proposition has been about reducing the amount of money companies need to spend on designing these networks. What’s the greatest cost when designing networks? People. Engineers and draftspersons are being paid to draw points and lines in Autocad. This is their livelihood.
I’ve always made peace with this by noting that the demand for network design is increasing enough such that the people who aren’t designing anymore are being used more effectively in other parts of the business. We’ve made them free of the often monotonous task of drawing a network design and they can put their skilled brains to better use. But this won’t be true if we manage to take automation to the point where it can replicate what humans can produce.
Fortunately — for both the part of me that doesn’t want to kill jobs and the part of me that likes a new challenge — I no longer believe that we can fully automate the task of network design, at least not in the next 5–10 years.
The limits of AI in automation
There’s so much hype around various forms of AI (self-driving cars, Amazon’s Alexa and her helpful friends) that it may seem like humans are on the brink of being able to think less. I don’t think we’re close to that — and I’m glad. Thinking is nice and I don’t want to stop.
The Pareto Principle has been coming up in my work increasingly often. In a simplistic nutshell, we can automate 80% of tasks in some workflow by focusing on the simplest 20%. Basically, pick the low hanging fruit first. It’s that last 20% of the tasks that are most difficult. What’s more, as we approach that 80% mark, the tasks get increasingly more difficult. I feel like it took 4 years to get to our automation algorithms to doing 70% of the work, and then another 3 to get to 80%.
For now, the final 20% of the work needs to be done by humans. Those last tasks are usually requiring various tradeoffs that algorithms can’t handle, or by making small tweaks that vary in each situation.
Writing algorithms with UX in mind
One of the best things that happened to our company was that we started using the software ourselves to create designs for other companies (I have colleagues who might vehemently disagree that this was the best thing). For a while, we were the sole consumer of our own software. This meant that the team writing algorithms sat next to the team creating designs and had lunch together. We also trained some of our early designers to be software developers.
We didn’t leverage this proximity in teams to its full potential as our designers — being CS, engineering or math graduates — were all comfortable writing scripts and using a command line interface and so we didn’t create a GUI. But while we spent zero effort on good UX from a graphical point of view, from an algorithmic point of view, we were doing good UX without knowing it. We were making sure that our automation algorithms had plenty of levers that our designers could pull to contribute to the algorithms and could iteratively add more information so that they were in effect collaborating with the algorithms.
As of last year, we’ve begun putting our software back in the hands of people who can’t just use a command line tool, and so now we’re getting into more traditional UX.
UX + good algorithm design = the AI that works with us
We now can go back and try to insert places in our algorithms for users with different needs. These users are subject matter experts who want to be able to have more control than our internal designers ever had.
The UX challenge is immense and satisfying. It involves being aware of and accepting of the strengths of both algorithms and humans.
Here are the strengths of algorithms:
- Speed of calculation: raw number crunching. What’s 12383 times 73273? Quick! Too late.
- Validation: check a solution against some rules and report on errors
- Impartiality: a machine doesn’t have any personal stake either financially or reputationally in a result
- Consistency: even non-deterministic algorithms are beholden to a set of rules that must always be applied, or at least converge upon some rules
The strengths of humans are:
- Creativity: humans can recognize and invent completely new ways to solve a problem by thinking “outside the box”
- Context (social, economic, environmental): humans are constantly acquiring, sorting and storing information that is relevant to their domain.
- Imagination: applying (often subconsciously) the creativity to context and extrapolating the implications of certain decisions or changes in their environment
- Empathy: humans care (usually, and to varying degrees) about the impacts of their decisions on other people and the environment.
It’s true that we may create sufficiently advanced AI that possesses some combination of or all these traits at or above the level of humans, but for now, these remain the strengths of humans.
So what we’re working on now is to give our users the tools to touch our algorithms at the right place. We’re doing this by facilitating these operations:
- Up front information: users give broad stroke instructions to the algorithms like what rules to follow, and where to apply them (e.g GIS data points on where potential subscribers are for some network)
- Influencing information: little pieces of knowledge about where things can be more complicated or expensive, typically based on the first run of the algorithm that feeds into subsequent runs
- Manipulation of output: sometimes, the algorithm just doesn’t get it — no matter how much you try to influence and encourage it. We need to give users to tools to take the wheel and make the design correct
Each operation allows humans to apply creativity, give relevant context and use their imagination and empathy to enhance the output of the algorithms.
What can we do?
There are lessons to be learned here by everyone. It’s taken me four years to go from a network designer using software to design networks, to a developer trying to automate it to a product manager trying to combine all of this into a single, cohesive piece of software.
So, what should we all be doing to balance the strengths of humans and algorithms?
- UX designers and product managers: look out for opportunities to work on making information flow seamlessly between the brains of humans and algorithms where each applies their own unique strengths. These are interesting and rewarding problems. These are some great principles to follow.
- Employers and managers: Your workers have creativity, context, imagination, and empathy that machines won’t have for years. Look for and invest in automation tools that embrace this
- Developers: stop trying to automate everything! Do you need to spend two weeks (but really, it’s four months) trying to fix that edge case that will probably be redundant with the next requirements update? Why not just build a tool that lets your client fix output themselves? This makes everyone happier, friction can be good!