Engineering
Is a Lossy Platform Holding You Back?
It all depends on which part of the workflow you automated
Over the weekend, some friends were in town, and I wanted to reserve a table at a restaurant down the street. Their web site linked to a Yelp Reservations widget that only lets you choose half-hour increments and doesn’t have a way to indicate “five and a high chair”. I picked “6:00” and “6 people” and hit submit, and Yelp responded that the best they could do was 5:00 or 9:00. Hmm.
I back-arrowed to the restaurant’s site and gave them a call. On the phone. With my human voice. As it turned out, they could put a few tables together and handle five and a high chair, if we didn’t mind waiting until 6:15. Easy peasy, lovely meal, and the baby waited until after dessert to melt down.
Example two: the long haircut
My wife and I get our hair cut at the same place, a salon nearby that recently switched to an online scheduling system. We used to stop in or call to set up appointments, but we’ve gone with the (presumably phone-answering labor-saving) web app the last few times. Now, I have a lot of hair. Not long as much as… densely packed? It used to be that they’d schedule me with a little more time, so my wife didn’t have to wait around as long if they were running behind.
The online scheduler, though, sees that I’ve chosen a “MENS HAIRCUT” and blocks off fifteen minutes less than a women’s cut. The app also doesn’t have a way to request a quick fringe trim between appointments, or a shape-up for a toddler. We’re back to making appointments in person.
Sampling loss
A person looking at a schedule on a screen has all kinds of quiet background processes running that will pick up on cues like “this customer always runs late” or “that’s the only table left, but it’s roomier than the other ones.” A person looking at a paper schedule can even annotate it with these ad hoc notes and connections.
Any time you turn an analog, real-world system into a digital representation, you have to choose how closely to match it, like in the diagram above. There’s always some distortion or loss of fidelity, and the messy world’s curves are made straight.
When you pass the work off to software, you introduce sampling loss in both directions: for the person entering the request, and the person fulfilling it. The person filling out a form has to break up their request into normalized chunks (date, time, number of guests), then lop off the wobbly edges of each datum so it fits into the box you provide (“6 guests” rather than “4 adults, a kid, and a high chair”). The person interpreting the request on the other side of the database query loses that information, plus information from surrounding requests, and any other context clues.
We’re good at remembering people, and comparing situations to our memories of similar situations in the past. What might stand out in comparison, though, is hard to codify ahead of time, free of context. If you use the software system enough, you’ll eventually capture some of these subtle clues in feature requests (“let users specify adults, kids, and high chairs”), and you’ll find very quickly that what’s no big deal for a brain can tangle up a user interface, not to mention a suite of database tests.
Your database shapes you
Once you’ve decided to codify a workflow in a set of database columns, anything outside those columns will fall to the wayside if it’s not given attention. Then, when you want to extend the system as it grows, you’re more likely to only consider the kinds of extensions that can happen in a database, like adding another column or another table. Simple-seeming changes you’d describe with “sometimes” or “maybe” are hard to express. The database becomes the entire system.
So… stick to paper?
No, mostly. Software is great at automating boring tasks, reliably reproducing steps that trip up brains, and giving you a pile of data to analyze later. Software can also combine data on the fly in ways a human wouldn’t ever think to. The trick is to leverage software for the boring, tricky, and novel parts of your process, rather than replacing everything at once. If you automate away what people aren’t good at, you’ve given everyone superpowers.
Maybe the schedule’s assembled by humans, with freeform annotations, but persisted online for sharing, analysis, and notifications. Maybe you keep the dropdown menus for the 70% of cases where they’re good enough, but add a “my request is more complicated” text box. There are ways to combine the superhuman database with human skills a platform can’t match.
So, before you send out an RFP for a platform to “simplify” a workflow, think it through. What rules of thumb and checklists are hidden in your process? Are there edge cases, or little warning flags you run through every time you evaluate something? A piece of software is a very lossy analog-to-digital converter for a messy, wobbly world. Our tools define our processes. When you swap in an automated system for a squishy person-brain, make sure you’re not throwing out the nuance that makes everything work.
Edited to add: Go read Jacob Harris saying much of the same, only better!
Story published on Jul 6, 2017.