Tanner Hodges

October 25, 2021

#13 Functional vs Non-Functional Requirements

When you say “Jump”, performance says “How high?”

It’s not just the thing you do, it’s how well you do it.

Functional requirements focus on what you do (your function) while non-functional requirements focus on how you do it, on the quality of that thing you’re doing.

It’s a subtle but powerful shift in thinking:

  • The car drives, but how fast, how far, how straight? Did it drive continuously or was it interrupted?
  • The plane flies, but for how long, how steady? Did it go where you wanted it to go or was it just “falling with style”?
  • The man speaks, but how clearly? How well was he understood?
  • The boy reads, but how much did he retain? (Shoutout to Brian Regan: “I took a speed reading course and my speed shot up to 43 pages a minute, but my comprehension plummeted.”)

You can go on forever: the house shelters, the AC cools, the restaurant feeds, the doctor heals, the engineer codes, Netflix entertains, customer support responds, etc. And for every one of these you can ask “How…?”

The art of performance is going beyond the functional, thinking in non-functional terms—almost lateral thinking. “Yes, this works, but how well?”

Defining how well something works takes insight.

How do we gain that insight? Are there shortcuts, rules of thumb we can use? Or is it just a matter of experience?

My hope is that if we can build a clear mental model of the “rules” of performance, that insight will come naturally… we’ll see!