Fog Creek Software
Discussion Board

Design a small app - how

I would like to hear how joel design when he is making a small application. What tools does he use - is the design up to date all the time - do you have some design document ready when the app is finished...
I am not talking about user interface design.

design man
Saturday, February 21, 2004

For very small apps or features I usually just write a complete specification (see my articles "Painless Functional Specifications") in plain text using CityDesk -- then I can publish it to my company's intranet and let other people give me feedback.

Here's an example:

Joel Spolsky
Fog Creek Software
Saturday, February 21, 2004

How long does in take (I suppose how many days)?

Because this "wasted" time is apparently the biggest turnoff.
Saturday, February 21, 2004

The spec in question probably took one day -- a day in which I probably answered the phone 7 times, read 200 emails, watched three or four Strong Bad Email movies, ...

The code in question took, if I remember correctly, three solid weeks.

The fact that I had the spec in advance and thought through things almost certainly saved me several weeks in coding effort, and made the final product much better. The fact that I realized from the beginning that I would need a "rewind" architecture allowed me to structure the code that way in the first place. If I had just dived into coding, it might have been too hard to retrofit the rewind architecture, so I might never have done it.

End result: better product, less time. People who are "too lazy" to write specs and dive right into creating code always end up either (a) spending more time or (b) spinning their wheels going nowhere until they give up on the project.

Joel Spolsky
Fog Creek Software
Saturday, February 21, 2004

I can write fairly well, but sometimes I burst into verbiage because of the bazaar of concurrent ideas in my head.

Also, do you first sketch an 'outline' and then fill it out, or do you just leap into writing? (I.e., do you write a spec for the spec?)

Advice on how to train the writing muscle? I'm no longer a university student so it'll have to be self-enforced.
Saturday, February 21, 2004

The spec articles have actually had a huge impact on my working day - in the past, I never specced anything much, basically letting myself be gulled by my various employers' emphasis on haste.

Oddly enough, though, specs have turned out to be something I greatly enjoy writing, despite the incredible tedium I experiences doing them at University, and my enthusaism for them has produced the best documentation our web application has ever seen ;)

They're absolutely worth doing, even if you're the only tech in the entire shop - perhaps especially in that case.

Mediocre ASP Monkey
Sunday, February 22, 2004

*  Recent Topics

*  Fog Creek Home