Sell It Lesson 17 of 27

What Step Are We On?

The Story

Narrated

Your trip planner is getting sophisticated. Users generate trips in the background with progress tracking. Photos upload through a queue. Everything is fast and responsive. You’re feeling good about the architecture.

Then you get a bug report. A user shared a trip with their friend. The friend opened the link and saw an itinerary that said “Day 1: Planning…” followed by “Day 2: Planning…” followed by nothing. The trip was still generating when it was shared. The friend thought the app was broken.

Then another bug report. A user was looking at their completed trip and decided to regenerate Day 3 — they didn’t like the restaurant suggestions. But they accidentally clicked “Regenerate Day 3” twice. Now two background jobs are generating different versions of Day 3. When both finish, one overwrites the other. The user ends up with a Day 3 they never approved.

Then another. A user archived an old trip and then somehow still received a notification that said “Your trip to Paris is ready!” — the background job finished after the trip was archived, overwriting the archived status with “ready.”

These aren’t separate bugs. They’re all the same bug. Your app doesn’t know what stage things are in. It treats every trip the same, whether it’s a rough draft, actively generating, fully complete, shared with friends, or archived. A generating trip can be shared. A completed trip can be overwritten by a late-arriving background job. An archived trip can be resurrected by a notification.

The app has no rules about what’s allowed to happen when. And when there are no rules, chaos fills the gap.


This lesson continues with the full course

The story intro above is free to read. The full lesson — prompts, explanations, and adapt-it exercises — requires the Build It Right ($149) tier or above.

Audio narration coming soon