Don’t cry for me …

Sorry, I don’t have Argentina on my mind. Indeed, we are in the software business, and you’ve probably already guessed that it’s something about that pile of possible disasters. You are right; I want to talk about systems and requirements unimaginatively called non-functional.  When they are non-f…, why the hell should we bother, excuse my French. OK, let’s not get into linguistics.

They do have a function, of course. The trouble is that when we sit down with the end user and chart all the requirements, some of those non-f’s are kind of invisible to him and can slip through cracks of our analysis. There are dozens of categories of non-functional requirements, which are sometimes divided into two main groups [e.g. Wiegers, Karl; Beatty, Joy (2013). Software Requirements, Third Edition. Microsoft Press]:

  • Execution qualities, such as safety, security, and usability, which are observable during operation (at run time)
  • Evolution qualities, such as testability, maintainability, extensibility, and scalability, which are embodied in the static structure of the system

I see them as being divided into two alternative groups: those that can be defined by the end user and those that must be specified by IT professionals (both from the client and the contractor side). While evolution qualities belong to the latter group, users can specify many execution qualities – maximum response time, recovery time, availability, overall security requirements, key usability demands, etc.

But even if your software development process is guided by a detailed cookbook (like ours is) so you avoid missing all the backup and disaster recovery requirements, data retention times, auditability, and all the other non-f’s, some surprises may still be hiding in the corners.

Back to the tears. I’m talking about literal tears shed by users working with the application after a successful application and system upgrade. The application in question had small letters, so the users had increased the text size in Windows without telling anybody, thus the request (a usability issue) to deal with the text size did not make it into the requirements. After the new release was put in place together with the upgrade to Windows 10, the users soon started complaining about headaches and tears flowing. The cause was easily identified as a blurred rendering of the ClearType fonts on Win10. The problem was quickly solved, but it points to the importance of details, even if these are, well, totally non-functional!