408 lines
13 KiB
Markdown
408 lines
13 KiB
Markdown
# Mapping & Visualization Scaffolds Template
|
|
|
|
## Workflow
|
|
|
|
Copy this checklist and track your progress:
|
|
|
|
```
|
|
Template Progress:
|
|
- [ ] Step 1: Define map metadata
|
|
- [ ] Step 2: List all nodes
|
|
- [ ] Step 3: Define relationships
|
|
- [ ] Step 4: Choose visualization format
|
|
- [ ] Step 5: Create the visualization
|
|
- [ ] Step 6: Add legend and insights
|
|
```
|
|
|
|
**Step 1: Define map metadata**
|
|
|
|
Fill out the Map Metadata section in the Quick Template with title, purpose, audience, and scope. This ensures the map serves the right goal. See [Section Guidance - Map Metadata](#1-map-metadata) for details.
|
|
|
|
**Step 2: List all nodes**
|
|
|
|
Complete the Nodes section in the Quick Template with all key elements (components, concepts, entities). Include brief descriptions. See [Section Guidance - Nodes](#2-nodes) for what to include.
|
|
|
|
**Step 3: Define relationships**
|
|
|
|
Document the Relationships section in the Quick Template with connections between nodes. Specify type and directionality. See [Section Guidance - Relationships](#3-relationships) for relationship types.
|
|
|
|
**Step 4: Choose visualization format**
|
|
|
|
Select from [Visualization Formats](#visualization-formats): List, Tree, Graph, or Layered based on complexity and relationship patterns. See [Format Selection Guide](#format-selection-guide).
|
|
|
|
**Step 5: Create the visualization**
|
|
|
|
Build the Visualization section in the Quick Template using your chosen format. Start with high-level structure, then add details. See [Visualization Formats](#visualization-formats) for examples.
|
|
|
|
**Step 6: Add legend and insights**
|
|
|
|
Complete the Legend and Insights sections in the Quick Template if needed, documenting discoveries from mapping. See [Quality Checklist](#quality-checklist) before finalizing.
|
|
|
|
---
|
|
|
|
## Quick Template
|
|
|
|
Copy this structure to `mapping-visualization-scaffolds.md`:
|
|
|
|
```markdown
|
|
# [Map Title]
|
|
|
|
## Map Metadata
|
|
|
|
**Purpose:** [Why this map exists, what decisions it informs]
|
|
**Audience:** [Who will use this map]
|
|
**Scope:** [What's included/excluded]
|
|
**Date:** [YYYY-MM-DD]
|
|
**Author:** [Name or team]
|
|
|
|
## Nodes
|
|
|
|
List all key elements:
|
|
|
|
| Node ID | Name | Type | Description |
|
|
|---------|------|------|-------------|
|
|
| N1 | [Node name] | [Component/Concept/Person/Step] | [Brief description] |
|
|
| N2 | [Node name] | [Type] | [Brief description] |
|
|
| N3 | [Node name] | [Type] | [Brief description] |
|
|
|
|
## Relationships
|
|
|
|
Define connections between nodes:
|
|
|
|
| From | To | Relationship Type | Description |
|
|
|------|-----|-------------------|-------------|
|
|
| N1 | N2 | [depends-on/calls/contains/leads-to] | [Details about this connection] |
|
|
| N2 | N3 | [Type] | [Details] |
|
|
|
|
## Groupings/Layers
|
|
|
|
Organize nodes into logical groups:
|
|
|
|
- **[Group 1 Name]:** N1, N2
|
|
- **[Group 2 Name]:** N3, N4
|
|
- **[Group 3 Name]:** N5, N6
|
|
|
|
## Visualization
|
|
|
|
[Insert your map using chosen format - see options below]
|
|
|
|
## Legend
|
|
|
|
**Node Types:**
|
|
- [Symbol/Color] = [Type]
|
|
|
|
**Relationship Types:**
|
|
- → = [Meaning]
|
|
- ⇒ = [Meaning]
|
|
- ↔ = [Meaning]
|
|
|
|
## Insights and Observations
|
|
|
|
**Key Findings:**
|
|
- [Important discovery from mapping]
|
|
- [Unexpected dependency or pattern]
|
|
- [Critical path or bottleneck]
|
|
|
|
**Recommendations:**
|
|
- [Action based on map insights]
|
|
|
|
**Limitations:**
|
|
- [What's not captured in this map]
|
|
- [Known gaps or uncertainties]
|
|
```
|
|
|
|
---
|
|
|
|
## Visualization Formats
|
|
|
|
### Format 1: Simple List (< 10 nodes, simple relationships)
|
|
|
|
```
|
|
API Gateway
|
|
├─→ Auth Service
|
|
│ └─→ User Database
|
|
├─→ Product Service
|
|
│ ├─→ Product Database
|
|
│ └─→ Cache Layer
|
|
└─→ Payment Service
|
|
└─→ Payment Database
|
|
```
|
|
|
|
**When to use:** Linear flows, simple hierarchies, few cross-dependencies
|
|
|
|
### Format 2: Tree Diagram (hierarchical relationships)
|
|
|
|
```
|
|
Application
|
|
|
|
|
┌──────────────┼──────────────┐
|
|
| | |
|
|
Frontend Backend Data
|
|
| | |
|
|
┌───┴───┐ ┌───┴───┐ ┌───┴───┐
|
|
UI Auth API Logic DB Cache
|
|
```
|
|
|
|
**When to use:** Org charts, taxonomies, clear parent-child relationships
|
|
|
|
### Format 3: Network Graph (complex interconnections)
|
|
|
|
```
|
|
┌─────────┐
|
|
│ User │
|
|
└────┬────┘
|
|
│
|
|
┌────▼────┐ ┌──────────┐
|
|
│ Auth │────→│ Logs │
|
|
└────┬────┘ └──────────┘
|
|
│
|
|
┌────▼────┐ ┌──────────┐
|
|
│ Service │────→│ Database │
|
|
└────┬────┘ └──────────┘
|
|
│ ▲
|
|
│ │
|
|
┌────▼────┐ │
|
|
│ Cache │─────────┘
|
|
└─────────┘
|
|
```
|
|
|
|
**When to use:** Microservices, complex dependencies, bi-directional relationships
|
|
|
|
### Format 4: Layered Diagram (system architecture)
|
|
|
|
```
|
|
┌─────────────────────────────────────────────┐
|
|
│ Presentation Layer │
|
|
│ [Web UI] [Mobile App] [API Docs] │
|
|
└─────────────────────────────────────────────┘
|
|
↓
|
|
┌─────────────────────────────────────────────┐
|
|
│ Business Logic Layer │
|
|
│ [Auth] [Users] [Products] [Payments] │
|
|
└─────────────────────────────────────────────┘
|
|
↓
|
|
┌─────────────────────────────────────────────┐
|
|
│ Data Layer │
|
|
│ [PostgreSQL] [Redis] [S3] │
|
|
└─────────────────────────────────────────────┘
|
|
```
|
|
|
|
**When to use:** System architectures, layered designs, clear abstraction levels
|
|
|
|
### Format 5: Swimlane/Matrix (responsibilities, workflows)
|
|
|
|
```
|
|
| Step | Frontend | Backend | Database | External |
|
|
|------|----------|---------|----------|----------|
|
|
| 1. Request | Send login | - | - | - |
|
|
| 2. Validate | - | Check credentials | Query users | - |
|
|
| 3. Token | - | Generate JWT | - | - |
|
|
| 4. Store | Receive token | - | Update session | Log event |
|
|
| 5. Redirect | Show dashboard | - | - | - |
|
|
```
|
|
|
|
**When to use:** Process flows with multiple actors, workflow documentation
|
|
|
|
---
|
|
|
|
## Format Selection Guide
|
|
|
|
**Choose based on:**
|
|
|
|
| Characteristic | Recommended Format |
|
|
|----------------|-------------------|
|
|
| < 10 nodes, linear flow | Simple List |
|
|
| Clear hierarchy, one parent per child | Tree Diagram |
|
|
| Many cross-dependencies, cycles | Network Graph |
|
|
| Multiple abstraction layers | Layered Diagram |
|
|
| Multiple actors/systems in process | Swimlane/Matrix |
|
|
| Time-based sequence | Swimlane or Simple List |
|
|
| Spatial/geographic relationships | Custom diagram with coordinates |
|
|
|
|
**Complexity thresholds:**
|
|
- **10-20 nodes:** Use grouping and colors
|
|
- **20-50 nodes:** Create multiple focused maps or use layered approach
|
|
- **50+ nodes:** Definitely split into multiple maps
|
|
|
|
---
|
|
|
|
## Section Guidance
|
|
|
|
### 1. Map Metadata
|
|
|
|
**Purpose:** Be specific about the map's goal
|
|
- ✓ "Understand microservices dependencies to identify deployment risks"
|
|
- ✗ "Show system architecture"
|
|
|
|
**Audience:** Tailor detail level to reader
|
|
- Technical team: Include implementation details
|
|
- Executives: Focus on high-level components and costs
|
|
- New team members: Add more context and explanations
|
|
|
|
**Scope:** Explicitly state boundaries
|
|
- "Includes all production services; excludes development tools"
|
|
- "Shows user-facing journey; excludes backend processing"
|
|
- "Maps current state as of 2024-Q4; does not include planned features"
|
|
|
|
### 2. Nodes
|
|
|
|
**What to include:**
|
|
- **ID**: Short identifier (N1, N2, or descriptive like "AUTH")
|
|
- **Name**: Clear, consistent naming (same conventions throughout)
|
|
- **Type**: Component, Concept, Person, Step, System, etc.
|
|
- **Description**: Brief (< 20 words) explanation of purpose or role
|
|
|
|
**Naming conventions:**
|
|
- Use consistent casing (PascalCase, snake_case, or kebab-case)
|
|
- Be specific: "User Authentication Service" not just "Auth"
|
|
- Avoid acronyms unless universally understood
|
|
|
|
**Examples:**
|
|
```
|
|
N1 | API Gateway | Service | Routes external requests to internal services
|
|
N2 | Auth Service | Service | Validates user credentials and generates JWTs
|
|
N3 | User DB | Data Store | PostgreSQL database storing user profiles
|
|
```
|
|
|
|
### 3. Relationships
|
|
|
|
**Common relationship types:**
|
|
|
|
**Dependency relationships:**
|
|
- `depends-on` - A needs B to function
|
|
- `requires` - A cannot start without B
|
|
- `blocks` - A prevents B from proceeding
|
|
- `enables` - A makes B possible
|
|
|
|
**Data relationships:**
|
|
- `reads-from` - A consumes data from B
|
|
- `writes-to` - A modifies data in B
|
|
- `sends-to` - A transmits messages/events to B
|
|
- `receives-from` - A gets messages/events from B
|
|
|
|
**Structural relationships:**
|
|
- `contains` / `part-of` - Hierarchical containment
|
|
- `is-a` / `extends` - Type relationships
|
|
- `implements` - Interface implementation
|
|
- `uses` / `calls` - Service invocation
|
|
|
|
**Process relationships:**
|
|
- `leads-to` / `follows` - Sequential steps
|
|
- `triggers` - Event causation
|
|
- `approves` / `rejects` - Decision flows
|
|
- `escalates-to` - Authority chain
|
|
|
|
**Specify directionality:**
|
|
- Use clear arrows: A → B (A to B)
|
|
- Note bi-directional: A ↔ B
|
|
- Include cardinality if relevant: A →[1:N]→ B
|
|
|
|
### 4. Groupings/Layers
|
|
|
|
**When to group:**
|
|
- Logical subsystems (Frontend, Backend, Data)
|
|
- Organizational boundaries (Team A, Team B)
|
|
- Phases or stages (Planning, Execution, Review)
|
|
- Environments (Dev, Staging, Production)
|
|
- Abstraction levels (Strategic, Tactical, Operational)
|
|
|
|
**Grouping strategies:**
|
|
- **By function**: All authentication-related nodes
|
|
- **By owner**: All nodes maintained by Team X
|
|
- **By layer**: All presentation-layer nodes
|
|
- **By lifecycle**: All legacy vs. new nodes
|
|
- **By criticality**: Core vs. optional nodes
|
|
|
|
## Quality Checklist
|
|
|
|
Before finalizing your map, verify:
|
|
|
|
**Completeness:**
|
|
- [ ] All critical nodes identified
|
|
- [ ] All significant relationships documented
|
|
- [ ] Groupings clearly labeled
|
|
- [ ] Legend provided if > 3 relationship types
|
|
|
|
**Clarity:**
|
|
- [ ] Consistent naming conventions
|
|
- [ ] Clear directionality on relationships
|
|
- [ ] Appropriate level of detail for audience
|
|
- [ ] No overlapping or ambiguous connections
|
|
|
|
**Accuracy:**
|
|
- [ ] Relationships verified with SMEs or documentation
|
|
- [ ] Current state (not outdated)
|
|
- [ ] No missing critical dependencies
|
|
- [ ] Scope boundaries clearly stated
|
|
|
|
**Usability:**
|
|
- [ ] Can target audience understand without explanation?
|
|
- [ ] Is the visualization scannable (not a "hairball")?
|
|
- [ ] Are insights or key findings highlighted?
|
|
- [ ] Is next action or decision clear?
|
|
|
|
**Technical:**
|
|
- [ ] File saved as `mapping-visualization-scaffolds.md`
|
|
- [ ] Markdown formatting correct
|
|
- [ ] Links and references work
|
|
- [ ] Version/date included
|
|
|
|
---
|
|
|
|
## Common Patterns by Domain
|
|
|
|
**Software Architecture:**
|
|
- Nodes: Services, databases, message queues, APIs
|
|
- Relationships: Calls, reads/writes, publishes/subscribes
|
|
- Groupings: Layers (presentation, business, data)
|
|
|
|
**Knowledge/Concept Mapping:**
|
|
- Nodes: Concepts, theories, terms, examples
|
|
- Relationships: Is-a, has-a, leads-to, contradicts
|
|
- Groupings: Themes, disciplines, abstraction levels
|
|
|
|
**Project Planning:**
|
|
- Nodes: Tasks, milestones, deliverables
|
|
- Relationships: Depends-on, blocks, follows
|
|
- Groupings: Phases, sprints, teams
|
|
|
|
**Organizational:**
|
|
- Nodes: People, teams, roles, functions
|
|
- Relationships: Reports-to, collaborates-with, approves
|
|
- Groupings: Departments, locations, levels
|
|
|
|
**Process/Workflow:**
|
|
- Nodes: Steps, decisions, handoffs
|
|
- Relationships: Leads-to, triggers, approves/rejects
|
|
- Groupings: Swimlanes (actors), phases
|
|
|
|
---
|
|
|
|
## Tips for Effective Maps
|
|
|
|
**Start Simple:**
|
|
1. Begin with 5-10 most important nodes
|
|
2. Add critical relationships only
|
|
3. Expand if needed, but resist over-complication
|
|
|
|
**Use Visual Hierarchy:**
|
|
- Size: Larger nodes = more important
|
|
- Position: Top = start, Bottom = end (for flows)
|
|
- Grouping: Visual proximity = logical grouping
|
|
|
|
**Iterate:**
|
|
- Create draft, get feedback, refine
|
|
- Test understanding with someone unfamiliar
|
|
- Simplify based on confusion points
|
|
|
|
**Know When to Split:**
|
|
- If map has > 30 nodes, consider multiple maps
|
|
- Create one high-level overview + detailed sub-maps
|
|
- Link related maps together
|
|
|
|
**Common Improvements:**
|
|
- Add color coding for node types
|
|
- Use different line styles for relationship types
|
|
- Include metrics or attributes on nodes (e.g., latency, importance)
|
|
- Highlight critical paths or bottlenecks
|