SRS >
Feature Set > Feature Specification Format
Process impact: This reference page
documents the format of feature descriptions and gives tips on
writing them. You can copy and paste the feature specification
template into your
Features document.
This file itself should not be edited to hold specific features.
TODO: Copy and paste this feature specification template as many times as needed
in your
Features document.
Feature Specification Format
F-00: FEATURE NAME
Priority:
Essential | Expected | Desired | Optional
Effort:
Months | Weeks | Days | Hours
Risk:
Dangerous | 3-Risk | 2-Risk | 1-Risk | Safe
Feature areas:
WORD, WORD, WORD
Use cases:
UC-01
Description:
1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION.
LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
INPUT-VALIDATION
LOGICAL-CONSTRAINT
BUSINESS-RULE
ACCESS-CONTROLS
SYSTEM-LIMIT
ERROR-HANDLING
Notes and Questions:
NOTE
NOTE
QUESTION
QUESTION
Feature Attribute Values
Priority
Essential: The system would never be used without
this feature, or it would be much harder to test, document, or
package the product without this feature.
Expected: Key stakeholders strongly desire and expect this
feature. It may have been promised to them in a certain release.
Its absence would substantially reduce the success of the
project.
Desired: Stakeholders desire this feature. Its absence would
somewhat reduce the success of the project.
Optional: This feature would be nice to have. Adding it could
have some advantage, but delaying it would not have a big effect on
the success of the project.
Effort
Months: A very large feature that is too big to estimate and
should be broken in to smaller, better-defined features.
Weeks: A large feature that will take 40 to 160 hours to add.
Days: An average or easy feature that would take less than 40 hours to add.
Hours: A very easy feature that would take less than 8 hours to add
Note that "adding" a feature means doing all of its design,
implementation, technical documentation, user documentation, and
testing. Even the easiest feature takes hours to add.
Risk
A "risk factor" is a task or fact that is currently in doubt,
but that must turn out well in order for the feature to be
successfully implemented. Sometimes, feature risks come from
project risks, or project risks come from feature risks.
Dangerous: Implementing this feature successfully would require
overcoming risk factors that are more than three or unknown in
number. It should be broken down into parts, better specified, or
risk factors should be eliminated prior to implementation.
3-Risks: Implementing this feature would require three risk
factors to be overcome. Any single release should contain at most
a few such high-risk features, and contingency plans should be
considered. You should be able to list the risks.
2-Risks: Implementing this feature would require two risk
factors to be overcome. This is normal for challenging
features. You should be able to list the risks.
1-Risk: Implementing this feature as specified would require
one risk factor to be overcome. This is normal for many features.
You should be able to describe the risk.
Safe: Implementing this feature as specified is just a matter
of time and effort, there is no real risk of failure.
Feature Areas
List the names of feature areas that contain this feature.
Feature areas may be listed in the feature set .
Use Cases
List use cases that make use of this feature. If this list is
empty, it indicates that you may not have a good enough
understanding of how this feature would be used.
Description
Write a brief textual description of this feature. Include its
purpose of the feature, input and output, constraints, and any
side-effects. Add precise details on specific aspects of the
feature. Precise details may be written in bullets, or by using
any other formalism, such as tables, state charts, formulas, or UML
diagrams.
Describe each feature in enough detail that it could be
implemented by any member of the development team (not only someone
who already informally knows what to do).
Interface: Describe the user interface or API to this
feature. Link to a tiny mock-up, if needed.
Input validation: Precisely define the set of valid input
values. Consider using regular expressions or mathematical
expressions. Specify units for measurements: e.g., hours or days,
yards or meters.
Logical constraint: Define the logical limits of this
feature. E.g., a search function might only search for individual
words rather than phrases.
Business rule: List business rules in if-then format.
Access controls: Specify who may use this feature.
Implementation limits: Describe planned implementation
limits. E.g., a spreadsheet can only be up to 9999 rows.
Error handling: Describe what happens if the constraints or
limits are violated.
Notes and Questions
Write down any notes that help explain the feature or relate the
feature specification to the development process.
Write down any questions that arise while writing the feature
specification.
Further Information
For more information on advice, see:
Company Proprietary