About the terminology:
- A requirement expresses a need or a constraint that the system has to fulfil, in principle independently of the solution that will be chosen. Examples: "The system shall allow only valid contract types to be entered", "The system shall facilitate the analysis of contractual trends".
- A feature is about something that the system offers: it's a part of the solution, expressed independently of the underlying user needs it adresses. Examples: "Configurable drop-down list of contract types", "A trend report provides an overview of the monthly evolution of contracts by type" . Hopefully a feature addresses one or several needs, but maybe not.
- An objective, is something that business actors are expected to achieve. It's "why" people are doing things and have requirements. An objective of a clerk in a law firm, could for example be to prepare contracts. If the software shall help in this objective, it will have to fulfill a requirement, and it can provide some features to facilitate the tasks needed to fulfill the objective.
This is the theory. In practice, requirements are often expressed as a desired feature. It's often easier for a user to think of a feature rather than to abstract the underlying needs:
- It has the advantage of facilitating the understanding of the expectations, and the quick agreement on the target solution.
- It has the drawback that potential alternative solutions are ignored, in particular those features that could better address the same underlying requirement (in our examples an interactive "trend analyser" with graphical trends and drill-down could better address the analysis needs than a simple "trend report") (btw I'm still wondering why there are so many calendar pickers around there: it's a nice feature to ensure a valid date, but it forces me to use the mouse to scroll 50 years backwards, when I could just have entered the birth year in four keystrokes ;-))