You need a balanced approach between strict enforcement and operational flexibility. Here’s a comprehensive solution covering all four focus areas:
1. Resource Capacity Planning (Foundation):
Implement time-phased capacity planning rather than simple percentage tracking. Configure resource profiles with:
- Standard capacity: 40 hours/week baseline
- Project-specific availability: Account for ongoing support commitments (typically 10-15% of capacity)
- Skill-based capacity: Different allocation rules for senior vs junior designers
- Buffer capacity: Allow 10% threshold above 100% for short-term flexibility
Update resource calendars monthly with planned time-off, training, and other commitments. This gives the conflict detection algorithm accurate capacity data.
2. Conflict Detection Algorithms (Core Logic):
Implement custom validation in ResourceAssignmentValidator class:
// Pseudocode - Enhanced conflict detection:
1. Calculate time-phased allocation for resource across all active projects
2. Identify overlapping work periods in assignment date range
3. Sum allocation percentages for overlapping periods
4. Compare against capacity threshold (100% + allowed buffer)
5. If exceeded, return validation error with conflict details
// See Windchill Customization Guide Section 12.4
Key enhancement: Check allocation at weekly granularity rather than project-level. This catches conflicts in specific time periods even if overall project allocation seems reasonable.
3. Resource Leveling Automation (Optimization):
Windchill’s native leveling is limited, but you can enhance it:
- Configure priority-based leveling: High-priority projects get first claim on resources
- Implement skill-based substitution: When primary resource is over-allocated, suggest qualified alternatives
- Enable automated schedule shifting: If conflict detected, propose task date adjustments to balance load
For cross-project optimization, create a scheduled job that runs weekly:
ResourceLevelingJob.analyzeAllProjects()
.identifyOverallocations()
.generateOptimizationRecommendations()
.notifyProjectManagers()
This provides project managers with rebalancing suggestions rather than forcing automatic changes.
4. Allocation Policy Enforcement (Governance):
Implement tiered enforcement policies:
Tier 1 - Preventative (0-110% allocation):
- Assignments proceed automatically
- Log allocation percentage for reporting
Tier 2 - Warning (110-125% allocation):
- System displays conflict warning with details
- Requires project manager acknowledgment to proceed
- Sends notification to resource manager for review
- Assignment proceeds but flagged for monitoring
Tier 3 - Blocking (>125% allocation):
- Assignment rejected with detailed conflict report
- Requires resource manager override approval
- Triggers resource leveling workflow to resolve conflict
- Logs override justification for audit trail
Implement this in site.xconf:
<Property name="wt.projmgmt.resource.softLimit" value="110"/>
<Property name="wt.projmgmt.resource.hardLimit" value="125"/>
<Property name="wt.projmgmt.resource.requireApproval" value="true"/>
Implementation Steps:
- Enable basic capacity enforcement and configure thresholds
- Update resource calendars with accurate availability data
- Deploy custom conflict detection algorithm with weekly granularity checking
- Implement tiered enforcement policies with approval workflows
- Configure weekly resource leveling job with notification to managers
- Create resource utilization dashboard showing allocation across all projects
Monitoring and Refinement:
Track these metrics to tune the system:
- Percentage of assignments hitting warning threshold (target: <15%)
- Percentage requiring manager override (target: <5%)
- Average resource utilization (target: 85-95%)
- Project schedule variance due to resource conflicts (target: <10%)
The tiered enforcement approach prevents egregious over-allocation while allowing operational flexibility for short-term needs. The enhanced conflict detection provides visibility into allocation across time periods, not just aggregate percentages. Combined with automated leveling suggestions, this gives project managers the tools to proactively manage resource capacity.