Dependencies
Dependencies = relationship mapping
Dependencies always been the elephant in the room of software development. Regardless of methodology, teams consistently struggle with dependency management due to its complexity and high cognitive load.
Hydro offers the conceptual foundation to solve and automate this part. It aims to transform through AI-assisted analysis and systematic tracking.
Dependencies define the prerequisite relationships between tasks and epics, creating the logical flow that drives wave organization and execution sequence.
Dependency types and patterns
Hydro recognizes few fundamental dependency patterns that occur in enterprise development:
Sequential Dependencies - create critical path chains where tasks must complete in strict order:
[Authentication API → [User Profile API] → [Profile UI] → [User Settings]
Parallel Dependencies - allow independent work streams that share common prerequisites
[Core Data Models] → [User Service]
→ [Payment Service]
→ [Notification Service]
→ [Audit Service]Convergent Dependencies - bring multiple independent streams together at integration points
[User Management] ↘
[Payment System] → [E-commerce Checkout Flow]
[Inventory API] ↗
[Shipping Service] ↗Cross-System Dependencies - handle enterprise integrations with external systems:
Dependency analysis process
Hydro rececomments dependencies being analyzed through a systematic process that determines wave assignments. The methodology doesn't make this a requirement, but encourages the community to develop tools for supporting the process.
Dependency Anti-Patterns
Here are few patterns that should be avoided:
Circular Dependencies → Task A depends on Task B which depends on Task A
Hidden Dependencies → undocumented assumptions that create surprise blockers
Over-Dependencies → tasks that depend on too many prerequisites
Under-Dependencies → missing dependencies that cause integration failures
Dependencies-to-Wave Process:
Hydro recommends dependencies being identified during the Refinement phase (when tasks are analyzed and prepared for development). This process can be partially automated (assisted by AI), or fully automated (with a check from human side).
Here is a proposal of how a systematic process of dependency analysis and wave assignment can be implemented programatically
Step 1 - set dependencies using format "Depends on: #X, #Y" or "No dependencies"
Step 2 - AI analyzes dependencies and assigns appropriate wave based on dependency depth
Validation: Epic integrity maintained - all epic tasks remain in same wave
Override: manual wave assignment possible with dependency conflict validation
This process enables automated cascade analysis when tasks complete, automatically identifying newly unblocked work and calculating priority scores for optimal task sequencing.
Last updated