In other news, here’s a question I often get:
Hey Michael, What’s the difference between:
- Features
- Use Cases, and
- Requirements?
Here’s my answer. Disclaimer: This is not a universally accepted answer, and you may find other answers on the internet that directly contradict mine. But that’s totally fine, as you and I know they’re all wrong and I’m correct – Yes?!
Onto the answer…
Feature vs. Use Case vs. Requirement
You see, it all starts with user needs. After all, the goal of building (or enhancing) a product is to meet the needs of our users.
- The other goal is to impress our boss’ Portugese water dog – but that is the subject of another post, on my secret blog! 😉
Features:
Once we understand user needs, we translate them into features – one or more features meet one or more user needs.
Features are descriptions of high-level product functionality. Usually a feature is something you’ll print on a detailed datasheet of your product – i.e. to share with your customers and prospective customers.
Use Cases:
We then derive one or more use cases from each feature. A use case defines how a user achieves a goal using our product.
Here’s how use cases are related to requirements:
- Use cases are a way to document a specific type of requirement – called “Functional Requirements”. There are many benefits to using use cases to document functional requirements.
Requirements:
After defining use cases, we define other types of requirements – such as non-functional requirements, UI requirements, etc.
Typical Workflow
In a typical project – we start by understanding user needs. Then we translate needs into features. We then create functional requirements – i.e. use cases – to describe how users will achieve a need using our product. Then we define other types of requirements: non-functional requirements, UI requirements, etc.
For those of you who like pictures, here you go!
Finally, we send all of these to the engineering team – who use them to build an awesome product!