Like salmon swimming upstream, user-generated content (UGC) and changes from content management systems (CMS) need to flow in the opposite direction to most software product changes.
What strategies exist for reconciling the bidirectional flow (applications & features vs. content)? How can we bring upstream-moving content into our deployment pipeline, in which everything flows down towards Production?
4. Made in Production ®
• Non-technical content authors
– New pages, widgets, workflow
• End users
– Graph connections, tagging
5. New Functionality
• Ideal: flow down new functionality
and behaviour from Dev
• Reality: CMS and UGC introduce
new behaviour and functionality
directly in Production
6. What do Humble & Farley
say?
“In most cases,
don‟t use dumps of
the production
dataset for testing
purposes. Create
custom datasets by
carefully selecting
a smaller subset of
production data”p.344
... but not much more than this
7. Example Strategies
1. Remove the Problem
– Avoid CMS
– Decouple UGC
2. Embrace the Problem
– Testing
– More testing
8. Remove the Problem
• Ditch the CMS
– Use plain HTML fragments + tooling
– Flow down the pipeline
– Package Management for
dependency graph
• Decouple UGC
– JavaScript client-side integration
9. Embrace the Problem
• Front-end tests in Production
– Use Staging?
• Identify new pages/features, extract,
bring back
– Track content with UUIDs
• Pre-live environment with data
regularly synched from Prod