Painless Functional Specifications - Part 2 - What’s a Spec
People get these mixed up, Functional specifications and technical specifications
- A functional specification describes how a product will work entirely from the user’s perspective. it doesn’t care how the thing implemented.
- A technical specification describes the internal implementation of the program. it talks about data structures and database models, etc.
Functional specifications
Here is some examples of what it looks like
- Overview:
- Each spec should have, Start date, an author, a status if it’s not complete or completed.
- The spec is supposed to show the goals we are trying to achieve from the user prospective. The graphics and layout of the screens shown here merely to illustrate the underlying functionality. The actual look and feel will be developed over time with the input of designers and iterative user feedback. This spec does not discuss the algorithms, calculation, code, which will be discussed in the technical specifications. It simply discusses what the user sees when they interact with the tool.
- Scenarios:
- Show as much as you can of details DETAILS, DETAILS.
- These are imagination real life user stories of how actual people would use the tool.
- Scenario 1: Mike, and how is he going to use the app
- Scenario 2: Cindy, and how is she going to use the app with mike
- Going into the Scenario details helps to imagen how the app should work
- Non Goals:
- It shows what we are not going to implement, for example, This version 0.02 will not support the following features 1, 2, 3.
- Flowchart
- Sharing a diagram or a flowchart to visualize how does the big picture look like.
- Screen by screen specifications
- These are not the final design screens but a prototype quick version to illustrate how it will look like
- Explain each screen the the user flow through the whole tool.
- Open Issues
- A list of issues that we are not yet sure what is the solution for it, that we need to come back to it to fix or remove before marking this as completed.
- References
- A list of the resources used to make this functional specifications
Specs Need To Stay Alive
Specs should be updated frequently. the updating continues as the product is developed and new decisions are made, the spec is completed when the code is complete