User stories
Firstly, what should our application do? A good way to describe our goals is by covering the desired behavior in different scenarios. If you've been involved in Agile development before, this will be familiar in the guise of "user stories." User stories are very simple descriptions of all the interactions a user can have with an application, and is often the first high-level document that is written when a project starts, as some of the stories appear in the justification or proposal for the work to begin.
Attempting to fill lots of detail early on can also make life harder; start with high-level stories and add detail as they are revisited. Sometimes a user story might be discarded if it's not feasible—it depends very much on how the work progresses and on the feasibility of each idea. User stories are also helpful to detect when it's worth splitting a feature into its microservice: a story that stands on its own could be a good...