The Economist has been going through a major transformation. By approaching our web experience in a componentized way, we defined how we could leverage our entire technology ecosystem to deliver products faster and improve the reader experience. This talk will focus on the approach, challenges and lessons learned through the evolution of the Economist Reader and Content Platform.
2. Who are we ?
Smart
Trusted
Bold
Global
Well-
written
3. Our Products
The Economist Economist FilmsThe Economist App
Global Business
Review
The Economist
Espresso
Economist.com
The World
In
1843
Debates Radio Social Feeds
4. What was Economist.com ?
• Drupal based Website
• Presentation was deep linked into the platform
• Platform delivers more than just a content management system
• Access management delivering access to our subscribers.
• Grew organically over the course of the years
7. Our Transformation
Be Cloud and
Mobile First
Buy Commodity
and Build
Innovation
Become Cross
Functional and
Product Centric
Having an Agile
Mindset
Becoming Value
and Data Driven
11. Agreed on what success means
Better Global
UX
Faster Load
Times
Search Engine
Indexability
Free
Progressive
Enhancements
Easier Code
Maintenance
• More people
reading more
articles
• Leading to more
subscription
conversions
• Increased
advertising
inventory
• Faster Product
Development.
15. Build Components not Templates
• Deconstruct experiences into components
• Introduced a component library
• Assemble experiences and Reuse
16. We embraced a new front end
“A declarative, efficient, and flexible
JavaScript library for building user
interfaces.”
• The “V” in MVC
• Reduce Coupling and Increase Cohesion
• Separated concerns
17. We tested our thinking
• Page Load times to 1.5 seconds from 7 seconds
• 46 page requests from 350 requests
• Put in place the first version of our library
18. The New Economist.com
• Built through the component library
• New responsive design applied
• Product Iterations and Released Continuously
20. We Embraced Continuous Delivery
Automate as
much as
possible
Version
everything
Introduced
tooling to
support speed.
Containerised
our
architecture
22. Introduced Commodity Services
Cloud based service bus to connect our landscape
A Marketing CMS to
enable campaign
briefing A CRM to power our
customer services
An Identity
Provider to handle
authentication
and authorisation
A DMP to enable
campaign targeting
A Subscription and
Billing Platform to
enable revenue
Reporting
Dashboards to
understand our
KPIs
Personalised
Metering and
Paywall Capability
23. Delivering Ecommerce
• CMS Driven powered by eZ
• Journey Builders to empower Marketing
• Product and Campaign management
27. We Introduced Microservices
Autonomous
Modelled around
the business
domain
Small, does one
thing, and does it
well
Owning build and
deployment
Integrates via
well-known
interfaces
https://github.com/EconomistDigitalSolutions/goberry
28. The Result
• Applied Golang to deliver a set of Microservices
• Implemented through containers in AWS
• An API Gateway that can be leveraged by multiple products
29. Redesigned our Content Platform
Externals
(Feeds and Aggregators)
Blog ImagesArticles
Micro Services
APIs
Content
Repository
REST/JSON
Front End
Experiences
CCI OtherTagging
Comment
Moderation
CommentsMetadata
Distribution Engine
Apps
Marketing
CMS
Ad
Serving
31. Lessons Learnt
Ensure the cross
functional team
understands the roles
and responsibilities
Culture trumps
Strategy
Be ready to pivot on
some technology
choices – it’s ok
Beware of spending
time on non value
activities
Augmentation vs
Project resources
Have a clear vision
and be ambitious but
don't rush yourself in
an unknown territory.
32. Lessons Learnt
Co Locate as much as
possible
Create a product council
Forward plan and come
together as a leadership
regularly
Embed DevOps into
cross functional team
Make sure you find
partners not suppliers
Create steady state team
early in your project.
You can’t define it all up
front.
Ensure you complete an
elaboration.
Problem solving mindset,
and force the team to
work in this way. Don't
give the team
predefined tasks, give
them problems.
33. Lessons Learnt
Build towards
contracts
Reduce
Dependencies
between tiers
Ensure Content is
reusable
Beware of state –
create additional
events and data to
create a stateless
system
Don’t underestimate
the transition to
continuous delivery
Spike Technology
Choices
Ensure Engineers
understand the
business impact of
any decision.
Balance Quality
Control with Output
34. The Road AheadProduct
Platform
ContentPlatform
Consumer
Platform
Engagement
Platform
B2B
Commerce
B2C
Commerce
in Place
Standardized
Ad Offering
Content
Authoring and
DAM
Content Platform
Redesigned
Content as a
Service
Marketing Automation
and Personalization
Reveal
Data Analytics Visualization
Environment
Data Science: modelling,
scoring prediction
A/B Test Product
Features
Regional Launch of Consumer Platform
Personalised Paywall and
Metering Capability
Unified Technology Platform
for Edition Products
Component Based Development of Products
Curation and
Personalisation
New Personalised
Product
35. In Conclusion
• We have transformed our culture and strategy to enable digital
transformation.
• We enabled continuous integration so we can iterate, adapt, test and
learn
• We embraced a best of breed approach to our technology landscape
focusing on buying commodity and building innovation
Smart guide to the forces that shape the future
Trusted, finishable filter on world affairs
Advocate for progress
A global perspective
Quality content & premium pricing
The Weekly Economist Publication and The Economist App available on a multitude of platforms
Economist.com our web presence providing a means for subscribers and non subscribers to recognise the value of our content.
Economist Films launched last year and focuses on delivering high quality short form video content such as Futureworks a series of documentaries exploring future jobs such as Drone Rangers and E-Sports Superstars, Global Compass exploring topics such as the right to die or health without wealth.
Espresso our daily shot at news preparing for the day ahead with 5 topical stories and a round up of the news in brief
The World In a yearly publication, app and website looking at the year ahead and exploring the different factors to look out for in the year ahead. The World If a companion product that explores how the world would react in the event of certain scenarios. As for 2016, the year can be summed up in three words: woes, women and wins. Go to TheWorldIn.com to find out more.
1843, recently launched and provides a publications focused on culture and lifestyle available as a print publication, website and app
Global Business Review a monthly edition of content and our first bi-lingual product available in Chinese and English
Debates is our debating platform hosting topics such as LBGT Rights and Online Pornography.
Social Feeds we are now available on LinkedIn, Facebook, Line and soon to be available on Google AMP and Snapchat
Inflexible and complex making development and product delivery slow making it difficult to provide different consumer proposition
Aging landscape making it difficult to get resources on the ground to effect change
Multiple Dependencies with core knowledge is in the hands of our third parties providing inhibitors towards improving the customer experience and transforming our existing business models resulting in increased cost.
Tightly coupled resulting in complex deployment reducing the ability to introduce new features.
Data in siloes providing missed opportunities in targeting our audience and getting understanding of our consumer resulting in revenue leakage.
Analysis – Our particular way of looking at and understanding the work
Finishability – An essential collection of what matters
Editorial – no add complexity to editorial
Modularity – We produce as few modules as possible and make them resuable
Facebook has continued to open source further components of their React stack, including a new Flux implementation (read: Controller-Views of MVC) called Relay, and the data query abstraction layer GraphQL.
Relay collects the declared data requirements from each React component on a given page. It aggregates the queries and performs a single request via the GraphQL (Graph Query Language) schema (shared between client and server), returns the data to the relevant React components, and caches the results to avoid re-requesting data.
GraphQL offers a unified interface to the mid-service tier. It abstracts the minutiae of data transport and resolution away from front-end developers and into declarative data requirement "fragments". The reduction in number of queries and data size will decrease load times, especially on high-latency and low-bandwidth connections.
Next we will be introducing Blue/Green Deployments
Introduced the Component Library
Build once reuse across multiple products
Reduce time needed from idea to market
Component iteration benefits the entire platform
Alignment and Consistency
Consistency across the products
Resources/talents sharing opportunity
The platform becomes more efficient the more products get connected
The Reader Platform
Reader engagement
Decluttered user journey
Lessons learned via UX and data analysis are shared across the platform
Align short term solutions with the long term vision. POCs are good for elaborating, but involve the people responsible for the system in the elaboration. Leverage the knowledge of the internal teams and make sure they are aligned and engaged with work they will inherit.Anticipate change. Elaborate. Document the approach, the considerations and assumptions. Understand these when refactoring and make a real-time assessment of the cost, disruption and risk involved in re-solving the problem differently
Build towards contracts that include standardized output (schema.org etc) to reduce dependencies between tiers and ensure the content is reusable, not specific to the needs of one consumer. Get both tiers together, establish a contract as a mock object and build to making that real.
In a tightly-coupled system, functionality often depends on the state (user login state or which page is being loaded etc). That code needs to be refactored. We must create additional data points and/or events to support a stateless system. Review the core business logic to ensure those dependencies are known and incorporated into the project.1) The best approach to embark in something as big as this project is to approach it in an iterative way. The World If model is the best solutions imho.
2) Force yourself in a problem solving mindset, and force the team to work in this way. Don't give the team predefined tasks, give them problems.
3) Don't over-engineer. Engineers must understand the business impact of any decision, if they look at problems only from an engineering perspective they will most likely over-engineer.
4) Make sure that you balance quality control to output. There is a tendency to create an awful lot of test coverage with hardly any output. Tests produce more tests. Bugs are acceptable if they are not disruptive. It's more important to be able to fix quickly a bug that have something that alerts you of a bug but your system is slow to react to solve it.