How to create a requirement list

Going through old documents this weekend, I found three pages that I had stapled together – three pages showing my first and initial designs and requirement list for the Recipe app I created last year, a story I described more in-depth in the case page.

A Facebook post can apparently be the starting point of a requirement list

The “requirement list” in this case was a Facebook post that a friend had posted, lamenting the lack of adaptable recipe apps. You can see my scribbles on the printout of the post a bullet points with 5 points, showing my friends “needs” in terms of functionality for a potential “life saving, Mari Kondo style recipe app” (translated from Swedish):

  1. The possibility to write your own recipes and add photos
  2. Collect links to recipes
  3. Create weekly menus that are connected to the recipes in the app
  4. Shopping list
  5. Shareable with the family

As share-ability involved GDPR and security issues, I initially removed that request from the needs list. I then condensed the remaining 4 needs to 3, summarized as:

  • Creating your own recipes (with information such as links and photo)
  • Creating a menu (including each day of the week)
  • Creating a shopping list

The main functionalities lay the foundation for the classes, libraries, repositories and functions to use in the app – including the possibility to add ingredients to the shopping list straight from a recipe and a recipe list with saved recipes. I initially added the possibility to connect recipes to the menu, but that showed to be inefficient – a menu shows you the titles of the recipes you will make during the week, and it takes less time to type the title yourself then to search for it in a database.

In a traditional project, the phase of collecting information about needs will of course be a bit more formalized then the Facebook post conversation I had with my friend. But the basics will always be the same – taking the actual needs of end users and client as your guide and adapting your project accordingly.

In a “real” project, creating a requirement list will probably involve:

  • Interviewing end users, or collecting data from them using say forms
  • If there is a current solution, observe how it is used today and ask about what works well and what needs to be changed or removed.
  • Condensing the needs to a list of requirements, and double checking with the users and client if the list is accurate
  • Execute! Preferably working iteratively (e.g. agile) if your project allows