When you're designing complex products, you're most likely to have build the general flow.
We call this flow, the ideal flow - when everything is done right. However, when you're designing for the real world, people act rationally less often than you think. They're on the move, with kids in the arms, multi-tasking and more.
So what's gonna happen? Well, if you've haven't prepared for the corner cases, you will probably arrive to a dead end and you're user are gonna be stuck here forever.
Imagine that you're core product requires a few permissions (location and notification access).
If you've handled those simple corner cases you would have designed for the cases when user has selected "Don't allow".
They are hundreds of corner cases that can happen in your product. Even though developers are more aware of them while coding. As a product designer you must anticipate them and design for the worse case scenario.
- Design for your extreme users (extremely passive users and extremely active users)
- Embrace software methodologies in your design processes
- Design for every eventuality (Good design is all about attention to detail)