A software specification is a document that describes in detail the functionality that software should have. Software development teams use the specification to write their code, and testers of the software refer to this document to understand how the software should work. The specification can often drive the construction of test plans.
Each organisation that writes software will probably have their own format for “specs”, but here is a software specification template in Word 2013 that will provide a good starting point.
To give you an idea of what this spec comprises, there follows a verbatim copy of it, without the title page and table of contents. Every time you see the words “Your Company”, this means your company, so make the appropriate substitutions.
© Your Company 2013. All rights reserved.
This document and its content remains the property of Your Company. No part of it may be reproduced, transmitted or stored in any retrieval system without prior written consent, unless expressly permitted in any written contract signed by the recipient and Your Company. No part may be disclosed to or used by any third party unless expressly permitted by a relevant written agreement. If no such agreement has been signed by the recipient (or their company) with Your Company, the document and its content shall remain confidential.
This document will form the basis for agreement between the Customer and Your Company. The Customer should not make any assumptions about or interpretations of included functionality if they are not specifically detailed within the document.
It is recommended that clarification from Your Company should be sought on any point that the customer is unsure, as the final functionality delivered will be as per the signed off specification. Any additions or changes to software thereafter will be subject to a separate specification and quote.
Unless specifically stated, every effort will be made to ensure that all screen / report designs shown within the document are accurately represented by the software finally delivered. Your Company however reserves the right to make alterations where appropriate during the software development stage. Your Company will notify the client of any such alterations and make clear the reasons why they were made. Changes made to screen / report layouts during development will not compromise previously agreed software functionality unless deemed necessary and approval has been received from the client.
This document will not be accepted, and no work will be undertaken by Your Company unless it is either signed by the nominated Customer representative or e-mail approval has been received.
3. Change History
|1.0||21/11/2013||John Smith||Initial version|
|2.0||22/11/2013||Patti Labelle||Inclusion of extra defaults|
An introduction to the project
A description of the problem that this project seeks to address.
A description of the solution to the problem outlined above.
5. Summary of Changes
A detailed description of all the software modifications required to implement the solution outlined above. This will include database specifications as well as code.