Ten years ago, to this day, I had an idea to redress how my team considered and approached their Non-Functional Requirements such as Performance. I got the team to start calling these Cross Functional Requirements to better express what they represented - requirements which cross all the functions we were building. Our team loved the idea and quickly adopted it, and we started to share it within ThoughtWorks.
I’m surprised, and actually really proud how quickly it spread through ThoughtWorks and then to the wider community. I went on an archeology dig to try to remember the sequencing of events, and was blown away with how quickly we switched from calling them NFRs to CFRS (NFRs) to just CFRs. I’m also pretty chuffed that my colleague Sam Newman mentioned me in his successful book Building Microservices: Designing Fine-Grained Systems.
Regardless of whether teams are focusing on Performance or Security, or another of the 30+ -ilities, I always think it’s pretty cool and very proud when they refer to them as Cross Functional Requirements.