Doing it all right, (Especially Funcional Specs.)

greenspun.com : LUSENET : Joel on Software : One Thread

First of all, thanks for all of the insights, we (At NewTek) appreciate them and we are using them.

My question deals with Functional Specs. We are almost ready to ship a pretty sizeable (and long awaited) project, the Video Toaster [2]. We are feeling some of the pain from not writing a Functional Spec. from the beginning and we are gearing up for the future. My question is, how do those of us trying to repent and write a Functional Spec. start when you are already WAY into the project? As we progress in Versions and spin offs, what is the right way to start writing functional specs. Is it too late for us? Is writing a spec. like closing the bard door once the cow is out?

-- Anonymous, September 27, 2001

Answers

Don't write any requirements when you are close to your release date, it's unnecessary. Requirements are there to help you write your code, once your code have been delivered they have served their purpose.

Since you are thinking about future releases, etc. I would suggest development of a complementary document that describes the concept of operation of your current release. I can see a long-term usage for such a document as it would provide description of your system from business perspective.

You should only develop functional spec for your future releases with "Concept of Operation" document serving as a base line of your system functionality.

By the way how did you get funding for your project without requirements ?.

Hope this helps.

-- Anonymous, September 27, 2001


I don't see any reason why you would write specs for the parts already written and functioning as required - the specs are implementation guidelines that are there to help you avoid making costly mistakes while developing the software.

I recommend writing a spec before beginning on each new subsystem, or whenever you're unsure as to how to start programming a new feature.

In my world, requirements and functional specs are two different things. Put short, requirements are the "what" the system needs to do, while the functional spec is the "how" it's done. A requirements document can easily exist without a functional spec, but without it, it's difficult to steer the programming effort in the right direction.

A functional spec can be verified against the requirements to make sure that the system really does what it needs to, so you don't waste time solving the wrong problems.

-- Anonymous, September 29, 2001


Moderation questions? read the FAQ