As anyone who has ever worked with me will know, I’m somewhat of an advocate of Non-Functional Requirements (NFR) Analysis. I’ve found that in some projects, sadly, the NFRs are left unexamined, with the Functional Requirements taking the lime-light. This is understandable, after all it’s far easier to talk about what needs to change, and far harder to talk about the quality attributes and other non-functional elements of that same change. Yet get the NFRs wrong, and you end up building a very shiny and expensive system that nobody actually uses. If you are in the UK and have been to a Post Office recently you may have experienced the ‘self-service’ booths. As Roland Hesz observed on Twitter, these are so complicated to use that they have a member of staff guiding people through the process….
For a whole variety of reasons, I’ve been thinking about NFRs a lot recently, and I came across three articles that really resonated with me, and made me think it’s about time we revisited the ‘standard lists’ of NFRs that we use. In particular, I think there are two sets of categories that we ought to add.