While seeking inspiration for a good project idea, you collected a set of problems and gaps observed amongst projects within your subject matter. You eventually categorised these under a number of different project objectives, then chose the one that most interested you. The observations that ended up under your current project are all excellent ideas for features, and are precisely the items you should add to your product wish list.
A product wish list is essentially the to-do list of your project, but it is a very particular kind of to-do list. The word: “product” is used specifically to imply that these tasks should contribute towards the end product, but the word: “wish” indicates that not all items need to be fulfilled in order for the product to be useful. The aim of this list is to keep track of the high-level features that your end-users wish to see in your software. For example: “Provide a live chat window to talk with other users” is something you could expect to see on a product wish list, but: “Use WebSocket protocol for live chat back-end” is not.
Gather your notes from chapter 3, and start forming a set of wish list items. Imagine yourself as the end-user of your software and think about which high-level features you would like to see, then write each item down as if you were requesting it from the developer. Avoid requirements that are either too broad or too vague. Try to keep your wish list items short and focused, each clearly defining a single end-to-end feature such that, once implemented, it is immediately usable and the product remains functional and release-worthy.
Don’t concern yourself with details on how these features will be implemented behind the scenes, all we care about right now is defining our project’s end-user experience. In the end, we are aiming to provide a real working product to our users, regardless of how each of these features are broken down and implemented, this list should be our number one priority through all stages of the development.
Once you have assembled your product wish list, it’s worth taking some time now to also assemble your product “not” list. This is a list of all the features your end-users may come to expect from your product, but really do not fall within the scope of what you have envisioned for it. Determining this list up front clearly defines your product boundaries, and helps prevent any future scope creep.
Creating these lists, and eventually making them available online, is both a good way for us to stay focused on our primary objective, as well as to let others know exactly what our product will and will not do.