Prioritization of functionalities in the development of custom software

Jan. 1, 2018

The main outcome of the inventory phase in a custom software development project are the requirements (a list of demands and wishes) of the software to be developed. These requirements are placed in a product backlog and are ordered by the customer to MoSCoW format.

Ordering requirements into a MoSCoW format is a way of prioritizing in custom software development with the following reasoning:

-Must have: these requirements should be reflected in the end result, without these requirements the product is not usable;

-Should have: these requirements are highly desirable, but without them the product is usable;

-Could have: these requirements this will only be addressed if there is enough time for it left;

-Won’t have: (also called would-haves): these requirements will not be addressed in this project but may be interesting for a future project.

This way of prioritizing provides clarity to the client and allows him to make judgments about more and less important parts of the software to be developed. When the development starts the first building-sprint generally starts with the must-have requirements of the custom software that needs to be developed. 

Within custom software development, it is important to make sure that working in sprints does not happen at the expense of the architecture of the end product. It is important to build with the final product (the total list of requirements in the product backlog) in mind and then work in sprints toward the final product. It is the responsibility of the project manager to properly align the priorities each sprint with the customer. A project fails if there are must-haves missing in the final product.