This is the opposite of question C-5-12 (blocks you don’t need to document).
Focus on important building blocks
You should document or specify the following kinds of building blocks:
- The level-1 whitebox (aka the top-level decomposition of your system).
- Blocks that address important quality attributes of the system.
- Blocks addressing specific or important functionality.
- Blocks that handle complicated or complex functionality.
- Blocks that mitigate or handle risks.
- Blocks that contain surprises or unusual ideas.
- Blocks that somehow deviate from the rest of the system.
- Blocks that deviate from typical developers’ expectation.
- Blocks that are required or important for creating business value.
Focus on higher-level building blocks.
Level-1 should always be documented.
Remember to be lazy and document economically: Smaller documentation for fewer building blocks are easier and cheaper to maintain than large documentation for many blocks…