Skip to content

Instantly share code, notes, and snippets.

@cybergitt
Last active January 10, 2025 03:17
Show Gist options
  • Select an option

  • Save cybergitt/dfb42dc194b26a6bcfbef3a11b6f4367 to your computer and use it in GitHub Desktop.

Select an option

Save cybergitt/dfb42dc194b26a6bcfbef3a11b6f4367 to your computer and use it in GitHub Desktop.
Design Documentation in Software Engineering

The main goal of a design documentation is to make you more effective by forcing you to think through the design and gather feedback from others. People often think the point of a design documentation is to to teach others about some system or serve as documentation later on. While those can be beneficial side effects, they are not the goal in and of themselves.

A functional design document (FDD) outlines how a system will work, while an application design document, such as a technical design document (TDD), describes how to build it. Both documents are important for system development and should be consistent and updated as the project progresses.

Functional design document (FDD)

  • What it describes: How a system will work, including its requirements, specifications, and plans
  • Who it's for: Business stakeholders, developers, and testers
  • What it includes: Use cases, system inputs and outputs, process flows, diagrams, and mockups
  • Why it's important: Saves time, resources, and money by ensuring everyone involved is clear on what needs to be done

Application design document (TDD)

  • What it describes: How to build a system, including its architecture, data model, and system interfaces
  • Who it's for: Developers, engineers, and testers
  • Why it's important: Ensures the solution meets the functional requirements and is built correctly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment