Picture this feature:
Respond to a user from the event stream
The event stream is like Twitter's home page, a stream of messages or events that were triggered by any number of users. The feature is to build a reply feature to one of the messages. Think the ability to reply to a tweet from the your personalised homepage on Twitter.
So in my eyes, this project has many facets:
- Frontend Modal Window to Trigger the Event
- Permissions to discern whether or not a user can reply
- Backend endpoint for submission of reply
- Connection to our notification system to tell the message's user that they have a reply
- Validation to ensure the reply meets our criteria
How do we break this down? It seems simple, I take those 5 tasks, and I change them into user stories or tasks (whichever is appropriate).
However, in Scrum, using INVEST principles, each story should be at the very least releasable and independent. However, in this case, I cannot do the validation until the backend endpoint and the frontend modal window has been completed, so this fails the test of being independent and releasable. Furthermore, I cannot react to permissions issues until the frontend work has been done, and this would also impact the backend endpoint. Included within this, is the fact that we need the database schema (and the model) for the replies, which acts as a dependency for the entire project.
I'm struggling to adhere to Scrum and INVEST when speccing projects because of how tightly dependent they all are on each other. It's specifically the ability to make them independent and releasable that I just can't seem to fathom. Can someone help?