Features are at a high level of abstraction
Help us understand and communicate
Software requirements are specific
We can code from them
They should be specific enough to be testable
The ability to trace between the various features and requirements (traceability)