background preloader

How to write a functional spec

Facebook Twitter

An Agile Functional Specification. In my previous post I described my experience as a business analyst on an agile project.

An Agile Functional Specification

One of the key artifacts I produced on the project was the functional specification (FS). In this post I’m going to get right under the covers of the FS and explain exactly what it was and how it worked. My intention is to provide enough detail so that others could actually try it out on their own projects. So you’ll have to excuse me if I go on a bit – I’m sharing some love here. I’m not saying it’s perfect, but it worked for me! To help this article make more sense, you might want to download a copy of the Functional Specification. Can a Functional Specification really be Agile? Is there any such thing as an agile functional specification? Given that the agile movement values working software over comprehensive documentation, you might well ask whether there is any place for a functional specification on an agile project. The debate as to how well this approach works in practice is ongoing. Story Index. Www.techtransform.com/process/PMTech/FUNCTEMP.pdf.

Painless Functional Specifications - Part 4: Tips. By Joel Spolsky Sunday, October 15, 2000 OK, we've talked about why you need a spec, what a spec has in it, and who should write them.

Painless Functional Specifications - Part 4: Tips

In this fourth and final part of the series I'll share some of my advice for writing good specs. The biggest complaint you'll hear from teams that do write specs is that "nobody reads them. " When nobody reads specs, the people who write them tend to get a little bit cynical. Also, if your spec never gets read, you get a lot of arguments when the finished product is delivered.

So. Tricking people into reading your stuff is usually just a matter of good writing. Rule 1: Be Funny Yep, rule number one in tricking people into reading your spec is to make the experience enjoyable. If you read the volumes of garbage I've written on this web site, you'll notice that there are a few lame attempts at being funny scattered throughout. The user types Ctrl+N to create a new Employee table and starts entering the names of the employees. write something like:

Painless Functional Specifications - Part 3: But... How? By Joel Spolsky Wednesday, October 04, 2000 Now that you've read all about why you need a spec and what a spec has in it, let's talk about who should write them.

Painless Functional Specifications - Part 3: But... How?

Who writes specs? Let me give you a little Microsoft history here. When Microsoft started growing seriously in the 1980s, everybody there had read The Mythical Man-Month, one of the classics of software management. So the programmers at Microsoft were worried about how to write bigger and bigger programs, when the prevailing wisdom of the day was that adding programmers just makes things worse. Charles Simonyi, Microsoft's long time "chief architect", suggested the concept of master programmers. Theoretically, this was supposed to solve the Mythical Man-Month problem, because nobody has to talk to anyone else -- every junior programmer only talks to the one program manager, and so communication grows at O(n) instead of O(n2). Well, Simonyi may know Hungarian Notation, but he doesn't know Peopleware. WhatTimeIsIt. This is a sample functional specification, a part of Joel on Software , a site about software management.

WhatTimeIsIt

It is intended for educational purposes, not to refer to a real product, in case you didn't notice by how stupid the whole thing was. Attention VCs, especially dim-witted ones : this product idea can be built for $5m at $20m-pre. WhatTimeIsIt .com Functional Specification Joel Spolsky Last Updated: September 27, 2000 ? WhatTimeIsIt .com is a service that tells people what time it is, over the web. This spec is not, by any stretch of the imagination, complete. This spec does not discuss the algorithms used by the time calculation engine, which will be discussed elsewhere. In designing products, it helps to imagine a few real life stories of how actual (stereotypical) people would use them.

Painless Functional Specifications - Part 2: What's a Spec? By Joel Spolsky Tuesday, October 03, 2000.

Painless Functional Specifications - Part 2: What's a Spec?

Painless Functional Specifications - Part 1: Why Bother? By Joel Spolsky Monday, October 02, 2000 When The Joel Test first appeared, one of the biggest sore points readers reported had to do with writing specs.

Painless Functional Specifications - Part 1: Why Bother?

It seems that specs are like flossing: everybody knows they should be writing them, but nobody does. Why won't people write specs? People claim that it's because they're saving time by skipping the spec-writing phase. I believe that on any non-trivial project (more than about 1 week of coding or more than 1 programmer), if you don't have a spec, you will always spend more time and create lower quality code. The most important function of a spec is to design the program. Let's visit two imaginary programmers at two companies. Speedy and Mr. Speedy decides that the best way to provide backwards compatibility is to write a converter which simply converts 1.0 version files into 2.0 version files. Now, Mr. When opening a file created with an older version of the product, the file is converted to the new format. Hwo to prepare a functional spec for a website. Instant SRS Documents.

How to document functional specification in simple way? Writing - how do I write a functional specification quickly and efficiently.