System Design: Friction as a Feature or a Bug?
Product lessons from theme parks
We spent spring break at Universal and Disney parks with our kids. Six parks in six days was honestly a bit much. But by the end of the trip, one difference stood out more than any ride.
At Universal, I checked the app a few times a day to glance at wait times. Are the lines short enough to ride again? At Disney, I refreshed the app all day, trying to catch Lightning Lane availability before it disappeared. Lightning Lane availability pops up at unpredictable times throughout the day. If I missed the window, we missed the ride.
One park had us present with our kids, and the other had us managing a system.
The gap between a system that works for you and a system that asks you to work for it is a product design lesson that felt so obvious, I couldn’t ignore it.
Where we stayed changed everything else
We stayed at the Portofino Bay, which is one of Universal’s on-site resort hotels. That one decision of where to stay shaped our entire trip. Universal’s Express Unlimited pass was included with the room. It’s usually an upsell if you’re staying at a non-Universal property. Once you have the pass, there is no additional cognitive overhead of tier selection or budget math each morning. It was just there.
The boat ride to the parks from the hotel ran every few minutes. Security screening happened at the dock before we boarded, not at the park entrance with thousands of other guests. By the time we stepped off the boat, we walked straight to the park entrance.
At the turnstiles, Universal uses facial recognition for “photo validation.” We scanned our cards once each day to link our faces. After that, we just walked up to the express lanes. Our faces were the credentials, so no fumbling for phones, no scanning wristbands, no pulling up the app was required.
The pass, the transport, the security, the entry — all of it managed the complexity before we ever encountered it. Nobody at Universal had to rescue the experience for us. The system never created a moment that required a person to step in and explain something or fix something.
How often can we say that about the products we build? How often does one good upstream decision make everything downstream easier for our users?
The same ride, three times
Express Unlimited didn’t just save us time. It changed how we experienced the parks.
My kids are really into Harry Potter right now, so the rides were the ones we experienced the most. The first time through, they felt the thrill. The second time, they started catching story details, the portraits moving, the spells, and the characters. By the third ride, they were pointing things out to each other, fully absorbed in the world.
That only happened because Express Unlimited doesn’t limit you to one ride per attraction. We didn’t have to plan which rides to prioritize; we just followed whatever our kids were excited about.
Disney’s Lightning Lane works differently. One ride, one redemption. If you want to ride again, you’re back in standby or selecting/buying another pass, if it is available. It steers you toward breadth, so you see as many things as possible, rather than letting you go deep on the ones you love.
And it doesn’t just limit what you ride. It limits how your family moves through the day. One evening at Hollywood Studios, it was raining, and our Slinky Dog Dash Lightning Lane was booked for 7:30 pm. So instead of heading back to the hotel, we waited around in the rain because we’d lose the reservation if we left. The system was managing our evening, not us.
The way I see it, that’s a real design difference. Universal is built for the family that finds something they love and wants more of it. Disney built for the guest who needs to be moved through a sequence. And every time a system moves people through a sequence instead of letting them self-direct, it creates moments where someone has to pick up the slack. Those decisions come from the system, not from the people in it.
Disney knows how to remove friction
As a product person, this is what made the trip so interesting to me: Disney is clearly capable of designing for the guest. Their Imagineers are some of the most studied experience designers in the world.
The app’s integration with mobile food ordering works really well — pick a restaurant, order from the app, and show up when it’s ready. MagicBand handles payments, hotel room entry, and park access in one tap. Dining reservations are fully integrated into the app.
Disney knows how to make friction disappear. So when Lightning Lane is confusing, that’s not a capability gap. It’s a design choice.
And the numbers back it up. The predecessor to the Lightning Lane was Disney’s FastPass+ system, and it used to be free. It was included with park admission from 2013 until it was quietly discontinued during the COVID closure in 2020. It never came back.
What replaced it was Genie+, which launched in October 2021 at $15 per person per day. That became Lightning Lane Multi Pass, which now costs $24 to $45 per person per day, depending on the park and date. If you want to skip the line for a premium ride like Guardians of the Galaxy or Tron, you have to buy a separate Lightning Lane Single Pass — $7 to $25 per ride, per person. If you want everything included, then the Lightning Lane Premier Pass runs up to $449 per person for a single day at Magic Kingdom.
Disney’s leadership has been open about the strategy. On a 2022 earnings call, then-CEO Bob Chapek described the parks as playing a “yield game” — using dynamic pricing and reservation systems to “increase per-capita spending meaningfully.” Per-guest spending was up 40% compared to 2019. His successor called the pricing “alienating” — but kept the system in place.
What used to be included became a revenue layer. The tiers, the time windows, the daily purchase decisions, the pop-up availability you have to catch — that’s where the yield lives. And as a parent standing in the park with two kids, every moment of confusion that system creates is a moment someone has to deal with. Either I figure it out, or the person working the terminal does.
Who carries the friction?
Both parks had kind, pleasant staff. Nobody was rude to us at Universal. Nobody was unhelpful at Disney. The people at both parks were nice.
What was different was what each system asked of the people in it.
At Disney, the cast members are warm, well-trained, and helpful. They have to be — because the system keeps creating moments that need human recovery. A family whose Lightning Lane expired because a ride was closed during the window or while they were figuring out where to eat. A guest who bought a Multi Pass but didn’t realize the ride they wanted required a separate Single Pass purchase. A parent trying to understand why the pop-up availability they saw ten minutes ago is already gone.
None of those moments is the cast member’s fault. They’re the system’s. But the cast member is the one dealing with them a hundred times a day.
I see this in product work all the time. We offer 8 plan options with dynamic pricing, and sales reps have to untangle them for customers. We add complexity to the product and then add documentation to explain the complexity. The friction doesn’t go away — it just shifts to the people using the system and those operating it.
The way I see it, Universal didn’t build a system that requires its people to be exceptional. It built a system that lets them be human.
What are we asking of our people?
I came back from this trip thinking less about theme parks and more about the products and teams I’ve worked inside. At least Disney’s complexity is a deliberate revenue strategy. Most of our organizations don’t even benefit from the complexity we’ve created. We just live with it, ask people to work around it, and sometimes the system is generating the very problems we’re hiring people to solve.
I keep coming back to whether we’ve done the work of designing systems that don’t waste our team’s talents.
Universal didn’t get everything right. Their app is clunky and less integrated than Disney’s. The digital experience has real gaps. But they got the system right in the places that mattered most. We felt it in every ride, every entry, every moment we were with our kids instead of managing a product.
I’ve written before about structural courage — the idea that a well-designed system removes the need for individual heroism. That people shouldn’t have to be shock absorbers because the system should absorb it for them. I wrote that about organizations and teams. I didn’t expect to feel it so clearly on a family vacation. But walking through Universal with my kids, that’s exactly what it was. A system that had done the hard work so the people inside it didn’t have to.
That’s what good system design feels like. The people were just people — friendly, doing their jobs, not rescuing anyone from a broken process. And that was enough.
