The unit-price for software must reflect the non-functional requirements

Output-Based Agreements (OBA) enable a customer & supplier to agree an acceptable price for a suitable quantity of functionality, simplifying contractual negotiations, while freeing the developers to use whatever methods are most effective for achieving the desired outcome(s).

Of course, different ‘types’ of software functionality are subject to differing non-functional requirements (actually, the entire gamut of ‘ilities’ identified by ISO9126… reliability, portability, maintainability, security, timeliness, etc.).

The functional requirements for the real-time embedded software controlling an automotive braking system is likely to be subject to different non-functional requirements than the functional requirements for a web-based online shopping application.

But these differences can be reflected by applying a different unit-price. Just as Jersey Royal new potatoes are priced differently per kilogram than last season’s King Edward old potatoes (best for chipping or baking).