Introduction
After over a decade managing CMDBs in financial services, I've learned that CMDB governance isn't about perfection—it's about sustainable, measurable improvement. Here are five practices that have consistently delivered results.
1. Start with Data Quality Gates
The Problem: Bad data enters the CMDB faster than you can clean it.
The Solution: Implement validation at the point of entry.
What Works
- Business Rules: Validate before insert/update
- Required Fields: Make critical attributes mandatory
- Format Validation: Enforce naming conventions
- Duplicate Prevention: Check before creating new CIs
// ServiceNow Business Rule Example
;(function executeRule(current, previous) {
// Prevent duplicate servers by hostname
var gr = new GlideRecord('cmdb_ci_server')
gr.addQuery('name', current.name)
gr.addQuery('sys_id', '!=', current.sys_id)
gr.query()
if (gr.next()) {
gs.addErrorMessage(
'Server with this hostname already exists: ' + gr.getDisplayValue()
)
current.setAbortAction(true)
}
})(current, previous)
2. Automate Reconciliation
The Reality: Manual reconciliation doesn't scale.
Automation Strategies
- Discovery Integration: Let ServiceNow Discovery do the heavy lifting
- Integration Hub: Connect CMDB to source systems
- Scheduled Jobs: Regular automated reconciliation
- API Automation: Python/PowerShell for complex scenarios
Impact: Reduced reconciliation time by 95% through automation.
3. Establish Clear Ownership
The Truth: CIs without owners become orphaned quickly.
Ownership Framework
- Application Owners: Business relationship managers
- Technical Owners: IT support teams
- Data Stewards: Configuration managers
- Escalation Path: Clear accountability chain
Create a dashboard tracking:
- CIs without owners
- Owner inactivity (>90 days)
- Owner coverage by CI class
4. Implement Continuous Monitoring
The Approach: You can't improve what you don't measure.
Key Metrics
- Completeness: % of required fields populated
- Accuracy: Discovery match rate
- Timeliness: Average age of CI updates
- Relationships: Connectivity coverage
- Duplicates: Duplicate CI count
Dashboard Example
-- Completeness metric example
SELECT
ci_class,
COUNT(*) as total_cis,
SUM(CASE WHEN required_field IS NULL THEN 1 ELSE 0 END) as missing_count,
(1 - SUM(CASE WHEN required_field IS NULL THEN 1 ELSE 0 END) / COUNT(*)) * 100 as completeness_pct
FROM cmdb_ci
GROUP BY ci_class;
5. Build Cross-Functional Partnerships
The Reality: CMDB success requires collaboration.
Partnership Strategy
- Regular Sync Meetings: Weekly with key teams
- Feedback Loops: Incorporate user input
- Training Programs: Educate CI owners
- Shared Metrics: Aligned KPIs across teams
Real-World Results
Implementing these practices at MUFG delivered:
- 7,000+ duplicates eliminated
- 21-40% discovery coverage improvement
- 2.6M unnecessary records removed
- 5,000+ licensing cost avoided
Conclusion
CMDB governance is a journey, not a destination. Start small, measure everything, automate relentlessly, and iterate based on results.
What's worked for you? Share your CMDB governance experiences in the comments!