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
Copyright © 2003-2004 Method Labs. All rights reserved. License terms. Retain this copyright statement whenever this file is used as a template.