A Technical Design Document (TDD) is written by the development team and describes the minute detail of either the entire design or specific parts of it, such as:
- The signature of an interface, including all data types/structures required (input data types, output data types, exceptions)
- Detailed class models that include all methods, attributes, dependencies, and associations
- The specific algorithms that a component employs and how they work
- Physical data models that include attributes and types of each entity/data type
In short, the functional design specifies how a program will behave to outside agents and the technical design describes how that functionality is to be implemented in code. The Technical Design Document must be approved by the IT project sponsor before proceeding to the development/integration phase.
- The Project Manager must ensure that all UIT software project plans include tasks for creation, review, update, and approval of the TDD, as a dependency for start of development. As with development/integration, the "80 hour rule" applies to TDD development tasks, i.e., anything longer than two working weeks should be broken down into components in order to ensure completion on schedule.
- The applicable UIT Development Lead is responsible for the creation of the TDD.
- The UIT Practice Area Director must approve the TDD before development work can begin.
- Some practice areas may have additional types of technical documents, e.g., field mapping, data models for BI projects, etc. The UIT Development Lead is responsible for identifying all required documents and working with the Project Manager to define appropriate tasks with sufficient time in the project plan for creation, review, update, and approval of all required technical documents.
- It is imperative that Development Leads update the technical documentation for a project whenever change requests or enhancements are approved during the course of the project in order to ensure that UIT support teams have the most accurate design information available at go-live. While not the responsibility of the Project Manager, it is good practice to remind project teams of this and establish the regularity of such updates for each project.