Learning to express NFR's in a form which is useful to the project is a good thing. However, the software domain is hard to measure - when did you last see a set of performance figures for a third party library, a protocol or a comms. channel ? That is, actual numbers and real world data which allow you to make "on the project" decisions ? So ! - knowing the behaviour of one component is very tricky, build a full stack for a complex application and it gets real difficult. So - rank those use cases, get early code delivery on a high risk use case, then spend HOWEVER MUCH TIME IT TAKES getting that use case to comply with the NFR's as best you can. Realising the remaining use cases is a piece of cake...?