views:

578

answers:

4

What qualities made it so great, and what made it stand out compared to the not-so-great specs that you've had to deal with? Or, if you've never worked with a good functional spec before, what sort of things would you expect in a great spec?

Sorry this is obviously subjective but I'm creating a functional spec (not my first) and it just occurred to me that I may get some good ideas from the bright folks on SO!

+3  A: 

Obviously, the specification should be complete, consistent and comprehensible. IMO it should also be well-organized, in that it keeps all requirements for a specific part of the product together. I've more than once read specifications where requirements for some module were scattered throughout the whole document, e.g. the general description is in chapter 4, but additional requirements can found in clauses in chapters 2, 5, 7 and appendix B. To work with such a specification, I first have to create a cross-reference map of requirements to modules.

ammoQ
Let us know if you ever sight such a beast in the wild :-)
paxdiablo
Pax: Yeah, I must be dreaming... again...
ammoQ
+4  A: 

The Project Aardvark specs from Joel on Software are the best I've come across so far. Each screen is defined very well, with pictures. The main features of the software are described, as well as some technical details.

Sadly the specs I've received personally aren't that brilliant. Usually they are just a bulleted list of features they expect from each section of the system, and they expect you to work out all the details. Which is fine, I guess. However, I'm writing a game design document for an RPG game I'm working on as a personal project, and I think the specs I'm writing are very well written. I've divided the game into Sections such as

  • Characters
  • Weapons & Armor
  • Levels
  • Map
  • Physics

and so on, and described each section in terms of gameplay as well as some technical details. Its very easy to work through.

I also highly recommend reading the Painless Functional Specs Series from Joel on Software for anyone interested in writing better specs.

Click Upvote
Thanks, didn't know Joel actually published the spec!
DSO
Thanks for the Project Aardvark link! I'm researching specs before I jump into one and it looks like it will be a big help.
scottmarlowe
Anyone aware of a template I can actually download and try filling out myself? I like Joels format, but hate to have to recreate it all in Word.
JoshBaltzell
+4  A: 

IMHO, a key quality should be that the functional spec specifies the "what" in great detail but not the "how". That way, the requestor (marketing?) gets the look & feel and feature set that they want, but the implementation is left to those who know it best -- the developers.

William Leara
True, but I think the tricky part is where you draw the line. E.g. I would consider flowcharts appropriate to put in a functional spec, but C# class diagrams inappropriate, even though both could arguably be considered "how" to do something. And if you are writing a functional spec for a highly technical product then this line could be even fuzzier (e.g. is it more appropriate to say "use a secure communications channel", or "use SSL"?).
DSO
+2  A: 

A good spec should state what the application is supposed to do, in a clear manner.

This seems obvious, but the stuff I usually get is often very vague. Apparently it's not very easy for people to express what they want on paper, IF they even know what they want.

Morph