8 min read • Guide 803 of 877
Dependency Management Between Teams
Dependencies between teams cause delays. GitScrum helps visualize and track cross-team dependencies to minimize blocking.
Understanding Dependencies
Types of Dependencies
DEPENDENCY TYPES:
┌─────────────────────────────────────────────────────────────┐
│ │
│ TECHNICAL DEPENDENCIES: │
│ ─────────────────────── │
│ • API team must deliver endpoint before frontend can use │
│ • Database changes needed before feature work │
│ • Shared library update required │
│ │
│ RESOURCE DEPENDENCIES: │
│ ────────────────────── │
│ • Need specialist from another team │
│ • Shared infrastructure team must configure │
│ • Design resources shared across teams │
│ │
│ KNOWLEDGE DEPENDENCIES: │
│ ─────────────────────── │
│ • Need information from domain experts │
│ • Legacy system knowledge held by one person │
│ • Cross-team documentation needed │
│ │
│ PROCESS DEPENDENCIES: │
│ ───────────────────── │
│ • Approval from security team │
│ • Legal review for feature │
│ • External vendor involvement │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ DEPENDENCY DIRECTION: │
│ │
│ INCOMING: │
│ ┌─────────┐ │
│ │ Other │ ───→ Our work blocked until they deliver │
│ │ Team │ │
│ └─────────┘ │
│ │
│ OUTGOING: │
│ ┌─────────┐ │
│ │ Us │ ───→ Other team blocked until we deliver │
│ │ │ │
│ └─────────┘ │
│ │
│ Outgoing dependencies require commitment │
└─────────────────────────────────────────────────────────────┘
Identifying Dependencies
Early Detection
FINDING DEPENDENCIES:
┌─────────────────────────────────────────────────────────────┐
│ │
│ DURING BACKLOG REFINEMENT: │
│ ────────────────────────── │
│ Ask for each story: │
│ • "Do we need anything from another team?" │
│ • "Does another team need something from us?" │
│ • "Who else is affected by this work?" │
│ │
│ DURING SPRINT PLANNING: │
│ ─────────────────────── │
│ • Review dependencies for planned work │
│ • Confirm other team's availability │
│ • Plan around blocked items │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ DEPENDENCY CHECKLIST: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ STORY: STORY-456 ││
│ │ ││
│ │ DEPENDENCY CHECK: ││
│ │ ││
│ │ ☐ API changes needed? ││
│ │ If yes: Which team? When ready? ││
│ │ ││
│ │ ☐ Database changes needed? ││
│ │ If yes: Who approves? Migration timing? ││
│ │ ││
│ │ ☐ Design from another team? ││
│ │ If yes: When will design be finalized? ││
│ │ ││
│ │ ☐ Infrastructure/DevOps support? ││
│ │ If yes: Is it scheduled? Who to contact? ││
│ │ ││
│ │ ☐ External approvals (security, legal)? ││
│ │ If yes: Timeline? What do they need from us? ││
│ │ ││
│ │ IDENTIFIED DEPENDENCIES: ││
│ │ → Depends on: API-123 from Platform Team (Sprint 15) ││
│ │ → Blocks: STORY-789 for Mobile Team ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Tracking Dependencies
Dependency Board
DEPENDENCY TRACKING:
┌─────────────────────────────────────────────────────────────┐
│ │
│ DEPENDENCY BOARD: │
│ │
│ OUR TEAM: Product Team │
│ │
│ INCOMING (We wait for them): │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ DEPENDENCY FROM STATUS DUE ││
│ │ ────────── ──── ────── ─── ││
│ │ API-123 Platform 🟡 In prog Sprint 15 ││
│ │ DESIGN-45 Design Team 🟢 Done Sprint 14 ││
│ │ INFRA-89 DevOps 🔴 At risk Sprint 15 ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ OUTGOING (They wait for us): │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ DEPENDENCY TO STATUS DUE ││
│ │ ────────── ── ────── ─── ││
│ │ AUTH-56 Mobile Team 🟢 Done Sprint 14 ││
│ │ DATA-78 Analytics 🟡 In prog Sprint 15 ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ DEPENDENCY DETAIL: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ INFRA-89: Production environment setup ││
│ │ ││
│ │ PROVIDER: DevOps Team (@lead-ops) ││
│ │ NEEDED BY: Product Team ││
│ │ FOR STORY: STORY-456 ││
│ │ ││
│ │ STATUS: 🔴 At Risk ││
│ │ REASON: Resource constraint, competing priorities ││
│ │ ││
│ │ MITIGATION: ││
│ │ Escalated to both team leads ││
│ │ Exploring temporary workaround ││
│ │ ││
│ │ LAST UPDATE: Jan 22 - "May slip to Sprint 16" ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Managing Dependencies
Communication
CROSS-TEAM COMMUNICATION:
┌─────────────────────────────────────────────────────────────┐
│ │
│ SCRUM OF SCRUMS: │
│ ──────────────── │
│ Representatives from each team meet regularly │
│ Share progress on dependencies │
│ Raise blockers and risks │
│ Coordinate timelines │
│ │
│ AGENDA: │
│ • What did we complete that others depend on? │
│ • What are we blocked on? │
│ • What might block others? │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ DEPENDENCY HANDOFFS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ WHEN ACCEPTING DEPENDENCY: ││
│ │ ││
│ │ ☐ Clear specification of what's needed ││
│ │ ☐ Agreed format/interface ││
│ │ ☐ Confirmed delivery date ││
│ │ ☐ Point of contact established ││
│ │ ☐ How to get updates on progress ││
│ │ ││
│ │ WHEN DELIVERING DEPENDENCY: ││
│ │ ││
│ │ ☐ Notify dependent team immediately ││
│ │ ☐ Provide documentation/examples ││
│ │ ☐ Available for questions ││
│ │ ☐ Confirm it meets their needs ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ESCALATION: │
│ ─────────── │
│ When dependency is at risk: │
│ 1. Direct team-to-team communication │
│ 2. Involve team leads if unresolved │
│ 3. Escalate to management if critical │
│ │
│ Early escalation, not last-minute surprises │
└─────────────────────────────────────────────────────────────┘
Risk Mitigation
HANDLING DEPENDENCY RISKS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ RISK: DEPENDENCY MIGHT BE LATE │
│ ───────────────────────────── │
│ │
│ OPTION 1: REORDER WORK │
│ Work on independent stories first │
│ Start dependent work when dependency arrives │
│ │
│ OPTION 2: PARALLEL WORK │
│ Start with assumptions (mock API) │
│ Integrate when real dependency ready │
│ Risk: Rework if assumptions wrong │
│ │
│ OPTION 3: REDUCE SCOPE │
│ MVP version without full dependency │
│ Add full integration later │
│ │
│ OPTION 4: INTERNAL SOLUTION │
│ Build temporary workaround ourselves │
│ Replace with proper solution later │
│ Creates tech debt │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ WHEN DEPENDENCY FAILS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ DEPENDENCY SLIP RESPONSE: ││
│ │ ││
│ │ SITUATION: ││
│ │ API-123 will be 2 sprints late ││
│ │ ││
│ │ IMPACT: ││
│ │ STORY-456, STORY-457, STORY-460 blocked ││
│ │ Sprint 15 goal at risk ││
│ │ ││
│ │ OPTIONS CONSIDERED: ││
│ │ 1. Wait (lose 2 sprints) ❌ ││
│ │ 2. Build mock API (enable parallel work) ✅ ││
│ │ 3. Rescope to remove dependency ⚠️ ││
│ │ ││
│ │ DECISION: ││
│ │ Build mock API, integrate when real API ready ││
│ │ Extra effort: 3 points ││
│ │ Approved by: @product-owner ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Reducing Dependencies
Architectural Approaches
MINIMIZING DEPENDENCIES:
┌─────────────────────────────────────────────────────────────┐
│ │
│ LOOSE COUPLING: │
│ ─────────────── │
│ Design systems that can work independently │
│ Clear interfaces between components │
│ Changes in one don't require changes in others │
│ │
│ DEFINED CONTRACTS: │
│ ────────────────── │
│ Agree on API contracts up front │
│ Contract tests ensure compatibility │
│ Teams can develop in parallel │
│ │
│ AUTONOMOUS TEAMS: │
│ ──────────────── │
│ Teams own full stack of their domain │
│ Can build, test, deploy independently │
│ Minimize cross-team code ownership │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ BEFORE/AFTER: │
│ │
│ HIGHLY DEPENDENT: │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Team A │───→│ Team B │───→│ Team C │ │
│ │ (Front) │ │ (Back) │ │ (Data) │ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ Every feature needs all three teams │
│ │
│ AUTONOMOUS: │
│ ┌───────────────────────────────────────────────────┐ │
│ │ Product Team (full stack) │ │
│ │ Frontend + Backend + Data for their domain │ │
│ └───────────────────────────────────────────────────┘ │
│ Team can deliver features end-to-end │
│ │
│ DEPENDENCY REDUCTION QUESTIONS: │
│ • Can we restructure teams to reduce handoffs? │
│ • Can we define clearer interfaces? │
│ • Can we give teams more ownership? │
└─────────────────────────────────────────────────────────────┘