Program Management
The Program Management module provides a structured container for coordinating related PPM projects. Programs aggregate health, budget, and timeline data from their child projects, manage cross-project dependencies, and generate program-level reports including benefits realization, ROI analysis, and OKR alignment.
Overview
Large transformation initiatives typically span multiple interrelated projects that share resources, dependencies, and strategic objectives. Managing these projects in isolation leads to missed dependencies, duplicated effort, and inconsistent reporting. ProBeya's Program Management module groups projects into programs with automated aggregation, cross-project dependency tracking, master schedule visualization, and a comprehensive reporting suite.
Programs follow a lifecycle with status transitions: planned → active → on_hold → completed or cancelled. Status transitions are validated to prevent invalid progressions (e.g., a completed program cannot revert to active).
Getting Started
- Navigate to Portfolio > Programs in the sidebar.
- Click New Program and fill in the name, description, and optional fields (program manager, sponsor, planned dates, tags).
- Add projects to the program using the Add Project action on the program detail page.
- Review the aggregated health, timeline, and budget on the program dashboard.
- Define Cross-Project Dependencies to model inter-project scheduling constraints.
- Generate Program Reports for stakeholder communication.
Key Concepts
Program Structure
A program contains:
- Name, description, and auto-generated slug for URL routing
- Program manager and sponsor (linked to organization members)
- Planned start/end dates for the overall program envelope
- Tags for categorization and filtering
- Status: planned, active, on_hold, completed, or cancelled
Projects are linked to programs through a junction table that supports soft removal (preserving history) and configurable sort order for display purposes.
Aggregated Metrics
Programs do not have their own health, budget, or timeline data. Instead, these are computed from child projects in real time:
- Health rollup: worst-case aggregation. Any red project makes the program red; any amber makes it amber; otherwise green.
- Timeline envelope: the earliest planned start date and latest planned end date across all child projects.
- Budget aggregation: sum of all child project budgets with CAPEX/OPEX breakdown.
Cross-Project Dependencies
Dependencies between projects model scheduling constraints such as "Project A must complete before Project B can start." Each dependency specifies:
- Predecessor project and successor project
- Dependency type: finish-to-start (FS), finish-to-finish (FF), start-to-start (SS), or start-to-finish (SF)
- Lag days: optional delay between the predecessor and successor
- Description and notes for context
The system enforces that a project cannot depend on itself and performs circular dependency detection using BFS traversal to prevent scheduling deadlocks (e.g., A → B → C → A).
Master Schedule
The master schedule consolidates all child project timelines, WBS elements, and cross-project dependencies into a unified Gantt-style view. It provides:
- Aggregated schedule: all projects plotted on a single timeline with milestones and dependencies
- Critical path analysis: cross-project critical path identification spanning multiple project WBS trees
- Milestone timeline: key milestones across all projects for executive reporting
- Schedule conflict detection: automatic identification of broken dependencies where a successor starts before its predecessor finishes
How It Works
Adding and Removing Projects
The addProject action links a project to a program. Both the program and the project must belong to the same organization. Duplicate active memberships are rejected. The removeProject action soft-removes a project by setting a removedAt timestamp, preserving the historical record of program composition.
Projects can be reordered within a program via the reorderProjects action, which updates sort order for display purposes.
Impact Analysis
The analyzeImpact procedure models the cascading effect of a delay in one project on all downstream dependent projects. Starting from a specified project with a given delay (in days), it performs a BFS traversal through the dependency graph, computing cumulative delay at each node and recording the propagation path.
This answers the question: "If Project X is delayed by N days, which other projects are affected and by how much?"
Dependency Validation
The validateDependencies procedure checks all cross-project dependencies within a program for scheduling conflicts. A dependency is "broken" when the successor project's start date falls before the predecessor project's end date plus any lag days. The result includes the gap in days and full project context for resolution.
Program Reports
Five program-level reports are available through the Program Reports router:
- Program Status Report: aggregated health, timeline, budget, project summary table, and risk highlights
- Benefits Realization Report: all benefits with status, realization percentage, and measurement history
- Cross-Project Dependencies Report: all dependencies with status, broken dependencies highlighted, and impact summary
- ROI Summary Report: per-project and program-level ROI and benefit-cost ratio (BCR) using tangible benefits only
- OKR Alignment Report: OKR tree with progress and strategic objective coverage matrix for a given period
Reports return structured JSON suitable for client-side rendering or future server-side PDF generation.
Configuration
| Setting | Location | Description |
|---|---|---|
| Program manager | Program detail > Edit | Assign the responsible program manager |
| Sponsor | Program detail > Edit | Assign the executive sponsor |
| Planned dates | Program detail > Edit | Set the overall program timeline envelope |
| Tags | Program detail > Edit | Categorize programs with free-form tags |
| Sort order | Program detail > Projects tab | Drag-and-drop project ordering |
| Dependency lag | Dependencies > Create/Edit | Configure days of lag between dependent projects |
Permissions
- View programs: all organization members with PPM access
- Create/edit programs: requires PPM admin or program manager role
- Delete (cancel) programs: requires PPM admin role (soft-delete only)
- Add/remove projects: requires program manager or PPM admin role
- Manage dependencies: requires program manager or project manager role
- Generate reports: all organization members with PPM access
Tips & Best Practices
- Use programs for related initiatives: Group projects that share dependencies, resources, or strategic objectives. Do not create a program for a single standalone project.
- Define dependencies early: Cross-project dependencies should be modeled during program planning, not discovered during execution.
- Run impact analysis before committing to delays: Before accepting a schedule change, use impact analysis to understand the full cascade effect.
- Review broken dependencies regularly: Schedule weekly dependency validation to catch conflicts before they become blockers.
- Use the timeline envelope: The aggregated timeline quickly reveals whether the program is expanding beyond its planned window.
- Generate status reports for steering committees: The program status report provides a single-page summary suitable for executive audiences.
Troubleshooting
| Issue | Cause | Resolution |
|---|---|---|
| Cannot transition program status | Invalid status transition (e.g., completed → active) | Check the allowed transitions: planned → active → on_hold → completed/cancelled. |
| "Project is already in this program" error | Duplicate active membership | The project is already linked. Check the program's project list. |
| Cross-project dependency rejected | Circular dependency detected | The dependency would create a cycle. Review the dependency chain and restructure. |
| Master schedule shows no data | No projects linked to the program | Add at least one project with WBS elements to see schedule data. |
| Impact analysis returns empty results | No downstream dependencies from the selected project | The project has no successors in the dependency graph. |
| Aggregated health shows "not_started" | No projects linked to the program | Add projects to compute health rollup. |
Related Features
- Projects -- Individual PPM projects that compose programs
- WBS -- Work breakdown structures within each project feed the master schedule
- Schedules -- Project-level schedules contribute to the program timeline
- Benefits -- Benefits tracking supports the benefits realization report
- OKRs -- OKR alignment report connects programs to strategic objectives
- Risk Management -- Project risks aggregate to the program-level risk view