Adoption - Migration Strategy
Phased Migration Strategy
How to migrate existing variable systems to Variable Contract using a phased approach.
If you migrate everything at once, you risk breaking production, losing references, and confusing the team.
Migration approaches
Big bang migration
Migrate everything at once.
Pros:
- Clean break from old system
- No dual-system maintenance
- Faster completion
Cons:
- High risk of breaking production
- Difficult to test thoroughly
- Team confusion during transition
Use when:
- Small variable set (< 50 variables)
- Low production usage
- Team can handle disruption
Phased migration
Migrate incrementally over time.
Pros:
- Lower risk
- Easier to test
- Team can adapt gradually
- Can rollback if issues
Cons:
- Longer timeline
- Dual-system maintenance
- More coordination needed
Use when:
- Large variable set (> 50 variables)
- High production usage
- Team needs gradual transition
Phased migration plan
Phase 1: Foundation (Week 1-2)
Goal: Set up Variable Contract alongside existing system
Set up Variable Contract structure
- Create
tokens/directory - Set up validation
- Configure CI
- Create
Create adapter for existing format
- Write adapter to convert existing format
- Test adapter output
- Validate converted JSON
Run adapter on existing variables
- Convert all variables
- Validate converted JSON
- Commit to version control
Deliverables:
- Variable Contract structure set up
- Adapter working
- All variables converted (not yet consumed)
Phase 2: Parallel run (Week 3-6)
Goal: Run both systems in parallel
Generate outputs from Variable Contract
- Configure Style Dictionary
- Generate CSS/TypeScript
- Verify outputs match existing
Update components to use Variable Contract outputs
- Start with new components
- Gradually migrate existing components
- Test each migration
Monitor both systems
- Track usage of old vs new
- Fix any issues
- Document learnings
Deliverables:
- Variable Contract outputs generated
- Some components using new variables
- Both systems running in parallel
Phase 3: Gradual migration (Week 7-12)
Goal: Migrate components incrementally
Migrate component by component
- Start with low-risk components
- Test each migration
- Document changes
Update design workflow
- Train designers on Variable Contract
- Update Figma workflow
- Export to Variable Contract format
Deprecate old system
- Mark old variables as deprecated
- Update documentation
- Plan removal timeline
Deliverables:
- Most components migrated
- Design workflow updated
- Old system deprecated
Phase 4: Cleanup (Week 13-14)
Goal: Remove old system
Verify all components migrated
- Audit component usage
- Confirm no old variables used
- Test production
Remove old system
- Delete old variable files
- Remove old build configs
- Update documentation
Finalize Variable Contract
- Complete migration documentation
- Train team on new system
- Celebrate success
Deliverables:
- Old system removed
- Variable Contract fully adopted
- Team trained
Migration by format
From Style Dictionary format
Phase 1: Convert format
- Rename
value→$value - Rename
type→$type - Update reference syntax
Phase 2: Apply governance
- Normalize naming
- Add validation
- Set up versioning
Phase 3: Migrate consumption
- Update build configs
- Migrate components
- Remove old format
From Material Design tokens
Phase 1: Extract variables
- Extract Material-specific variables
- Map to Variable Contract structure
- Normalize naming
Phase 2: Create adapters
- Create adapter for Material format
- Convert existing tokens
- Validate output
Phase 3: Migrate consumption
- Update components
- Remove Material-specific code
- Use Variable Contract outputs
From custom formats
Phase 1: Audit existing system
- Document current structure
- Identify variable types
- Map references
Phase 2: Create adapter
- Write adapter for custom format
- Convert all variables
- Validate output
Phase 3: Migrate consumption
- Update components
- Remove old system
- Use Variable Contract
Migration checklist
Pre-migration
- Audit existing variables
- Document current format
- Identify migration approach
- Set up Variable Contract structure
- Create adapter (if needed)
- Test adapter output
During migration
- Convert variables to Variable Contract
- Validate converted JSON
- Generate outputs
- Test outputs match existing
- Migrate components incrementally
- Monitor for issues
- Document changes
Post-migration
- Verify all components migrated
- Remove old system
- Update documentation
- Train team
- Celebrate success
Risk mitigation
Risk: Breaking production
Mitigation:
- Run parallel systems
- Migrate incrementally
- Test thoroughly
- Have rollback plan
Risk: Lost references
Mitigation:
- Validate references during conversion
- Test reference resolution
- Document reference mapping
Risk: Team confusion
Mitigation:
- Train team early
- Document migration process
- Provide support
- Communicate clearly
Success metrics
Migration is successful when:
- All variables converted
- All components migrated
- Validation passing
- Team trained
- Old system removed
- No production issues
Timeline
Typical phased migration:
- Week 1-2: Foundation
- Week 3-6: Parallel run
- Week 7-12: Gradual migration
- Week 13-14: Cleanup
Adjust based on:
- Variable set size
- Component count
- Team size
- Risk tolerance
Out of scope
- Automated migration tools (build custom scripts)
- Tool-specific migration (see adapter docs)
- Design system migration (focus on variables)