Fog Creek Software
Discussion Board

Spec writing possible in kernel level ?

I was tyring to compile your spec writing tips to adopt it to my environment. I work in kernel level stuff. There is no UI. So, how do I write my functional and technical specification ?.

Thursday, March 25, 2004

Presumably you have users, they just happen to be other programmers, and they talk to you by calling APIs, not by pressing buttons on the screen.

Joel Spolsky
Fog Creek Software
Thursday, March 25, 2004

For driver development, our spec is a document that:

- Explains the overall structure of the driver with a block diagram (kernel mode driver, IOCTLs, user mode library, example programs, etc).  We tend to recycle this from project to project (most of our drivers have the same basic structure).

- Lists all of the driver IOCTLs, describes what they do, lists all input and return variables.

- Lists all of the library functions, describes what they do, lists all input and return variables.

- Describes all of the example programs, and what features they're supposed to demonstrate.

- How the driver should be installed.

We use this to plan our development.  After the driver is written, we turn this document into the manual that ships with the driver.

Basically, we don't start developing the driver until at least a rough draft of the manual is done.

We had always written manuals for our drivers, but never did a spec.  When I approached the problem of writing a spec, I realized that our manuals basically ARE what a spec should contain.  All we did was change the order in which things are done (the manuals used to be written after development was done).  We got the benefits of writing a spec without adding a bunch of extra steps to the development process.

Myron A. Semack
Thursday, March 25, 2004

*  Recent Topics

*  Fog Creek Home