Software Design Document Template

Many organizations, new and old, struggle to come up with a descent Software Design Document Template for the teams to follow. I plan to provide a template with various sections that could be considered while working on the software design. Not all sections may be applicable for each feature. Developer/Architect should pick up the relevant sections.


1. Introduction

Provide context for this architectural change or new feature.

2. Related Documents

Point to related User Stories in AGM, defects, wiki pages, research/approach wiki/docs, attachments (PPTs, Docs).

3. Definitions

Terminologies, Acronyms and their meaning, description etc.

4. Limitations of Current Product Functionality and Architecture

Limitations, Drawbacks, Defects, Issues etc. in existing product before implementing this feature/story.

5. Solution Highlight

Executive summary of architectural changes and/or new features. Along with section 4 (above), the reader should be able to understand the problem being solved, business context of the problem and how it is intended to be solved.

6. Acceptance Criteria

Identify the acceptance test criteria. This could include development test suite, smoke tests suite etc.

7. Functional Design

Use this section on highlight WHAT functionality is to be introduced/changed within the product. Provide details about the use cases, actors, scope etc. Below two sections combined should be able to capture clear understanding of the functionality from engineering point of view.

8. Architecture

High level architectural changes. Highlight what changes will be introduced as compared to existing architecture using old/new diagrams or colors/sections within the diagram. Following diagrams, as appropriate, can be used:

9. Implementation Design

10. Development Considerations

11. External Dependencies, Blockers and Risks

12. Approvals