AI in Product, Delivery, and Data
We used to blame our “slow” team for missing the loyalty app launch. Then we added two more squads and missed by another quarter.
This was a 200-store grocery chain rolling out digital coupons and curbside pickup. One team owned identity, one owned offers, one owned checkout, one owned fulfillment.
Every sprint looked healthy. Stories closed, demos worked, stakeholders nodded.
But “customer” meant a person to identity, a household to offers, and a phone number to checkout. “Available inventory” was real time for fulfillment and “good enough” cache for the app.
Senior engineers stopped writing features and started arbitrating definitions, payloads, and edge cases. Not because they love meetings, but because each integration question was a decision nobody owned.
So we built the right things in incompatible ways. The rework wasn’t heroic - it was expensive: duplicate tracking events, broken coupon eligibility, and refunds that took days to untangle.
This month an app store compliance change forced a resubmission, and it surfaced the same problem: we still couldn’t answer simple policy and data questions consistently across teams.
Once we named a single owner for shared definitions and interface contracts, cycle time dropped without adding headcount.
It makes me wonder how many “execution issues” are really unowned decisions dressed up as speed problems.