Wednesday, 2 January 2013

Maslow's Hierarchy of Software Requirements

Agile development practices mandate an ongoing dialog with the customer, in which requirements are raised and met in a sequential manner.

This naturally causes a prioritization, as some requirements only become important once others have been fulfilled. This is closely analogous to Maslow's hierarchy of needs (following the point raised by Boehm in his paper: A View of 20th and 21st Century Software Engineering.



For example, once basic functionality has been implemented, it's basic reliability must be assured, and trust must be built in it's operation. After that requirement has been met, the security of the software must be ensured. Only after these tasks have been done does one (generally) prioritize the offering of metrics to "add value" with insight into the business.



Insight
Security
Trust & Reliability
Essential (Base) Functionality