Software Engineering Best Practices

Functional Specs

The first advice I can give is to write functional specs. In the link, Joel Spolsky explains the motivation and method of writing functional spec. A functional spec describes how the end-user will use and interact with the program. It is not a technical spec which explains how the inner software will work.

From my experience, functional specs are fun to write, reveal many problems in the initial design, and make you think how the software will work on the inside.

Here are three examples for functional specs I wrote: