Reflections on Software Development

Personal Blog of Mustafa Basgun

How to Write Unique Functional Specifications Before Starting to Code?

with 2 comments

I have recently been asked to prepare some professional TE (technical evaluation) and TD (technical design) documents by one of my friends that I used to work together couple of years ago. He currently runs his own small IT consulting company here in Atlanta, and he was in a need of new format of these documents for a new client. He didn’t want something that is just a “copy and paste” of some other documentations that can be easily found on the internet. He was basically looking for a well written functional specifications that both his new client (which I guess not a computer savvy) and his application developer can understand what the final product will look like at the end.

Even though I wasn’t going to copy and paste anything from the net, but it wouldn’t hurt me to search about how to write a successful functional specifications for technical projects and I found this resource written by Allen Smith. If anyone would be asked to write functional specifications from scratch, it will be a good starting point.

Thanks Allen for sharing this great piece of writing!

Written by Mustafa Basgun

January 21, 2008 at 10:00 AM

2 Responses

Subscribe to comments with RSS.

  1. Hi,

    I also have to prepare something like that but I do not know much about it. I just copy the question. Could you please help me how to start and write the functional specifications for the given case?

    Case:

    A bank would like to develop a software to allow customers transfer money from his/her account to another customer’s account using ATMs.

    You, as a system analyst, are supposed to prepare a functional specification document for developers.

    Your specifications should include the following items:

    - Glossary
    - Definition of the Project
    - Basic Principles
    - Goals of the Project
    - Out-of-Scope
    - Process Flowchart
    - Activities
    - Business Needs
    - Data Fields: Data used in the activities
    - User Interfaces: Screen shots
    - User Profiles and Roles
    - Documents to Be Produced
    - Log and Security Needs
    - Messages (Error, Warning, …)

    Your specifications should:

    - Cover everything (For any missing information, use your creativity!).
    - Should be written concisely, correctly, and consistently.
    - Should be edited from beginning to end a few times after you think it is done.

    Thanks in advance,

    Tekin

    Tekin

    December 25, 2008 at 3:46 PM

  2. Hello Tekin,

    Following reading from Joel’s blog can be a good starting point for you:

    http://www.joelonsoftware.com/articles/fog0000000036.html

    You can also download a useful Word draft from the following page:

    http://www.softwarereality.com/lifecycle/functionalspec.jsp

    Hope these links help!

    Mustafa Basgun

    December 25, 2008 at 9:47 PM


Leave a Reply