Technical documentation creation is a critical step for a successful IT project, no matter whether it is big or small. When you have a team of people working on the same product, building it for someone else, communication is vital.
Technical documentation (TD) is one of the ways to bring everyone on the same page. It provides and explains the logical design of the upcoming (or existing) code as well as sets the expectations for features and modules the developer needs to create.
From a business standpoint, it is also an important step. Good technical documentation for a software project helps to lower costs (especially various sudden overhead), achieve high reliability, create a maintainable product, and streamline communication between the business and IT people (who often think in different ways).
There are several types of technical documentation, and in this article, we’ll look at such things as HLD, LLD, and DLD. Not sure what these mean and when to use which one? Read on.
Types of Design
High-Level Design (HLD)
High-Level Design (HLD) is a general system design. It includes the description of the following parts:
- System architecture
- Database design
- Brief mention of all the platforms, systems, services, and processes the product would depend on
- Brief description of relationships between the modules and system features
All the data flows, flowcharts, data structures, etc. are in these docs so that developers can understand how the system is expected to work with regards to the features and the database design.
Low-Level Design (HLD)
Low-Level Design (LLD) is a component-level design process that follows a step-by-step refinement process. It provides the details and definitions for the actual logic for every system component. It is based on HLD but digs deeper, going into the separate modules and features for every program in order to document their specifications.
Detailed-Level Design (HLD)
Detailed Level Design (DLD) is the most detailed technical document, which describes user stories, error processing algorithms, state transitions, logical sequences, and others. DLD describes the interaction of every low-level process with each other.
You might also be interested: What Code Repository to Choose for Your Project
Here is a convenient infographic that shows the difference between HLD and LLD: