How do I write a Technical Specification document for my software project?

  1. Define the project goals
  2. Define the system architecture/infrastructure
  3. Define the user dialogs and the control flow
  4. Define the background tasks
  5. Define the database model
  6. Define the interfaces to other systems
  7. Define the non functional requirements (response times, security, …)
  8. Define a dictionary for all relevant concepts/entities (dangerous, you may omit this one)