Say someone asked you to implement a “tiny” feature on an iPhone Mail App.
Here’s the (first part of the) requirement as Business provided it (to the dev team):
User can swipe right to left and when they do, 2 menu options should appear.
When you click on one of them, it should allow you to forward the email and when you click the other, it should archive it.
Sounds simple enough?
It should be simple till you get to the “the devil is in the detail” part. So, before I implement it, here are some questions I would have as a developer:
Can the user only swipe from right to left, or can they do vice-versa? And if they did that, what should happen?
If the user starts swiping but doesn’t complete the action till they dragged it all the way to the very left, what should happen?
If the user swiped & performed an action but realized they were on the wrong item so wanted to undo, will they be able to do it? And if so, how?
Can they perform bulk actions? If so, is that a mutually exclusive action agnostic to the individual swipe?
After they swipe on one of the emails, say if they swiped on another. Will the subsequent action need to reset the state so the first one is now un-swiped?
Do we need to support multiple email accounts where each of them is rendered as a separate category? And if we did that, what should happen when a user swipes on one of the emails in each of those sections? Will that result in a reset of all states (of all other sections)?
And there’s a few more I can think of off the top of my head but you get the idea.
So, now, let me ask again:
How simple is the design and implementation now? Did you have a change of heart and will you need to adjust your story points?
“How hard can it possibly be?”
Keep it simple. And just so that you can keep it simple, we do everything in our capacity to remove all the complexities. Rome was not built in a day as they say, and Snowpal 2.0 certainly wasn’t either. We have built it brick by brick for your pleasure. Or, should I say, “swipe by swipe”?