
Vibe coding in flight, afternoon website.
I’m travelling and speaking more than I usually do. A lot of thinky-talky events bunch up in June, because from July to Labor Day, everyone is just pretending to work. Right now, I’m in Aspen, Colorado; next, I’m on my way to San Francisco. I haven’t booked a complex, many-legged trip in years—one where I pay for some things and my hosts pay for others. Plus Rich is with me for one leg, and I’m solo for another. As a result, I’m having all kinds of new software experiences with conference-management apps, travel booking sites, and so forth.
One conference is booking speaker travel through a platform called Navan. You get an email, you make an account, it books your flight for you, and then it moves on to getting you a hotel. It’s just…very well done. It looks good, it works well, and you don’t hate every aspect of the experience or feel like you’re being robbed.
After about three minutes of using it, I cheerfully murmured to myself, “Pure Valley product.” (I looked up the company, and yep—Palo Alto HQ.) This is one thing the Valley does really well: Take absolutely awful, miserable processes, wrap them in good, well-designed experiences, and charge everyone for the privilege of using the resulting product.
So sure, as Navan was booking a flight I’d selected—part of a multi-city hop—everything broke, and one of my legs of travel turned bright red. But the app handled this gracefully: It flagged it, made clear that I needed to try again, and wouldn’t let me move on without addressing it. On the second pass…it worked. Getting a workflow in place, communicating it to a crabby user, acknowledging that it broke, and helping them address it—it’s just chef’s-kiss stuff. The amount of sheer psychic pain involved in building something like that—working with external APIs that essentially want you to die—is remarkable.
Another specific detail stuck out: When I exceeded the approved cost with my tickets, it told me that it was going to need to get approval, but critically, it told me who was going to grant approval. I could then ping my person and let them know this was happening, give them a name, and they could ping that person proactively if needed. And thus, in about an hour, everything came together nicely, even though it involved a bunch of approvals and emails. Once it was unlocked, I was notified, and then my ticket was emailed to me. In the meantime, I was able to get on with the rest of my life.
Notice—no AI. I’m grateful for that, because what made this experience valuable was its transparency: I was aware of what my goals were, I saw them get done one by one, and I also knew all the people involved. AI has tons of uses, but it really is bad at being transparent about processes; it has a tendency to go away, churn, and come back with results. I really, really worry about losing this kind of experience to a world of prompts and chat. I’m a lot less excited about a future where I have to describe my sciatica to an LLM so it can tell me whether I can spend more on a ticket or not.
At the same time, the conference I’m attending right now has a perfectly fine app that sends me lots of notifications and asks me to sign up for breakout sessions. But I waited too long to download the thing—that’s on me—and by the time I got the app, fished my confirmation code out of one of many emails, and logged in, most of the sessions I wanted were gone. Here, I had a different reaction: I found myself craving a nice AI experience. Instead of five onboarding emails over two weeks sent by an automated system, how about one email? Something like:
“Hi, Paul. We’re excited to see you in a few weeks. I’ve drawn up a personalized schedule for sessions you’ll find interesting, all based on what I learned about your company on the web, and by reading your LinkedIn profile. I’ve listed alternative sessions below each pick—if you want to change the selection, that’s easy, too.”
I would have jumped right on that instead of procrastinating, because there was nothing to wade through. And if I’d bailed, well, they did make an effort right? And the schedule would probably have been fine.
Both of these software products are, at their heart, ways to manage data flowing in and out of databases. You click and tap, and these systems perform transactions on your behalf. For the travel app, the cost of failure is really high, and the typical experience of booking flights and hotels is miserable and confusing—and if something breaks, your day is going to be spent on hold with airline customer-support lines. Transparency of the process is incredibly high-value. A conversational interface would add complexity, and I was so glad that one wasn’t pushed on me. It made me realize how often that happens these days.
But for the conference app, the stakes are lower—and I knew I was putting off digging through emails, and as a result, I didn’t get the sessions I wanted. Not a tragedy, but not a great experience, either. The computer simply jumping in and acting on my behalf would have saved me some agita and made me feel engaged. I also wouldn’t have minded a nice conversational interface helping me make sense of the conference, telling me facts about the speakers and gently guiding me along a path. Imagine if I “said”: “I’d love to talk to other senior people who are delivering AI solutions and find out what they’re learning. Could you set up an opt-in chat room so we could introduce ourselves before arriving?” Or it had even suggested that without me asking. It would have made the event interesting in new ways. Partially because whenever they do “networking sessions,” I fight myself from hiding in the corner.
I want to start challenging the binary between “all software needs more AI” and “AI is ruining all software.” Like everything, it’s situational. With one product, I was grateful there was no chatbot, at least not front and center (there may be one in there somewhere, of course; you never know). That’s Valley product at its best.
In the other, I really missed having a nice bot, because it could have smoothed over the little data-entry tasks, and if it could introduce me to people and suggest people to introduce myself to. That would be a golden icebreaker. “The conferencebot suggested we introduce ourselves so I think we have to!” And then you joke and make a friend. Humans aren’t that complicated all the time. Sometimes we need a little nudge and an opening.
At work, sometimes our clients are going to want AI, and we’re going to want to steer them towards building good, transparent old-school products instead. (Which we can build faster than we used to be able to.) We’ll likely have to convince them that it will be just as exciting for their customers to have good clear UX as it would to have a little bot that rambles. Other times, AI is going to be what opens doors and growth. Both are totally valid. Choosing the right approach is…product work. For solution engineers. Or, you know, humans.