Playing with icescrum, I realised that I do not understand the difference between user stories and user features.
Can someone explain the difference?
A feature is a distinct element of functionality which can provide capabilities to the business.
A story is a small aspect of a feature which you can use to get feedback from your stakeholders and find out if you're doing anything wrong.
For instance, a feature might be "allow users to comment on articles". The stories associated with that feature might then be:
At each stage we can then get feedback as to whether the direction we're taking is useful.
Some teams don't bother splitting features into stories. That's OK.
Features == User Stories.
The verbiage is dictated by the given Agile methodology being employed.
The different methodologies use different terminology to refer to features. It is up to the team to decide which methodology or terminology to use. Extreme Programming (XP) uses the terms User Stories or Stories to represent features; Scrum uses Product Backlog to describe a feature list; Feature-Driven Development uses Feature; and DSDM uses Requirement. Similarly, there are various lightweight versions of the Unified Process, or Agile UP, that use Requirement and/or Use Case to define incrementally deliverable functionality. Ultimately, the goal is the same - to deliver business value regularly in small increments, and sooner rather than later.
A User Story is an informal statement in the language of the customer which captures the intent of something that the customer wishes to achieve. You can think of a User Story as an Informal Requirement Statement.
A Software Feature is a distinct characteristic of the software that contributes to the overall design and functionality of the software.
A couple of key considerations:
With all of this in mind, I tend to think of Stories as descriptions. Basically informal requirements which tell me what the customer wants. Features on the other hand I tend to think of more as a specification which tells me how a system should work in order to meet the customers requirements.
The two terms are closely related, but there are some differences.
First, they come from different domains. The term "feature" is a fairly general term for some part of the functionality of a software, whereas "user story" was invented for and is really only used in the context of agile software development.
In practice, they very often coincide, in that one user story consists of implementing a certain feature.
However, in some situations they can be different: