Feature Definition
In the Agile lifecycle, it’s important to define project attributes at a level of detail appropriate to the phase. During project inception, the product owner and Agile team create a product vision, setting a target for the project by defining the target users and their needs as well as how the proposed product will solve those needs. The product vision provides an indication of the product features desired by the prospective users.
After defining the product vision, the product owner and Agile team move into an elaboration phase, further refining the functional requirements associated with the desired features. A feature is broadly defined as a function that satisfies a user’s need and is more granular than the product vision, but less granular than a user story. It is useful to create lightweight documents outlining feature details as follows; feature definition documents should be lightweight, living records which provide a forum to discuss the shape, constraints and rules applied to the feature.
Overview
The overview contains a description of the user’s goal and desired feature capability.
Assumptions
A list of assumptions helps to identify the constraints applied to the feature. This could include assumptions about the level of complexity, security constraints, customer preferences, accessibility constraints, dependencies, etc.
Approach
The approach section defines, in plain, concise language, how the product will meet the user’s need. Wireframes, state diagrams, or process flows may be included to help visualize the feature and associated workflows. Additionally, the approach outlines business rules governing product behavior.
As the product owner and Agile team collaborate to refine the vision for a given feature, user stories flow from the feature definition.