Gavin Estey, Technical Director at Appnovation, has almost two decades of experience supporting retail businesses evolve their customer experiences with changing needs and behaviour. At Appnovation, he plays an essential role in collaborating with partners and clients to build people-inspired solutions. Gavin spoke at Contentful’s 2020 Fast Forward user conference on managing a large-scale Contentful implementation. This blog post presents the key points covered.
A digital content platform for the enterprise shouldn’t be a monolith – not anymore. Compose your platform from modular components to build an agile platform that enables cross-team collaboration, agility and a multi-channel content distribution strategy.
Gavin opens by saying, “I spent the early years of my career deploying and maintaining big enterprise software suites. They were expensive, complicated to deploy and maintain. Invariably, four or five years after installing these, companies had to go through the process repeatedly to update for their changing needs. This whole cycle got me thinking about how to escape from this slow and expensive default of using big enterprise solutions to solve big problems.”
Couldn’t we solve enterprise-level problems with solutions composed of smaller pieces? Would taking a modular approach be more efficient, less expensive and more manageable?
Take back control
Over the past decade, companies have been moving their core applications to the cloud and adopting a modular approach to both their use of cloud infrastructure and the applications they run on it. It’s a move that draws on agile and its iterative approach to software development — creating, testing, deploying smaller batches, soliciting user feedback, iterating, and testing again. This inverts the usual pattern of control – taking the control from the creators of big enterprise platforms and giving it back to the people responsible for growing their business; digital leaders, marketers, developers and content authors. You’re no longer tied to someone else’s product roadmap, with upgrades coming at you on someone else’s schedule. You don’t have to worry that a product you rely on will sunset at a time that’s inevitably the least convenient for your business.
Choosing cloud infrastructure is part of this same mindset. It means that scaling up and maintaining your infrastructure becomes someone else’s problem. You get to concentrate on your own business, instead of solving technical issues that really can, and should, belong to someone else. When done right, this modular, cloud-native approach is more cost-effective. Instead of investing a huge amount of money upfront in-licensing and development, you pay as you go. When your market experiences change, and you need to change with it, you don’t have substantial sunken costs — you just shift direction and continue to pay as you go.
This new modular concept lends itself to agility perfectly. When you think about the typical software lifecycle, 60 percent of the costs are maintenance — only 40 percent is spent on product development; 60 percent of your maintenance costs are for adapting to changing user requirements. If you move to an approach that lets you make changes more easily and quickly, you solve your problems cost-effectively while making it easier for your business to adapt as the world you operate in shifts.
A modular, agile approach to content
This reasoning behind choosing a modular, iterative approach over purchasing a big enterprise solution applies just as much to content as it does to any other area of your business. Think about what you’re trying to do with content: You’re trying to create a great user experience. Doing that with a waterfall approach won’t allow you to iteratively test content and then improve based on user response. But the agile approach allows just that. You take complicated things and break them down into simpler components, which lets you recombine them in innovative ways. You invest in small, nimble, agile platforms that let you iterate efficiently and make changes quickly.
As described above, the same inversion of control is evident with content. Instead of being limited by a platform, you put control back into the hands of the developers, authors and platform owners responsible for your content. Your company makes its own decisions – your developers get to choose the programming language, even multiple languages. You can make small investments in different tools to see what works best for your business. This inversion of control draws inspiration from your architecture; you shift away from tightly coupled components to architecting with loosely coupled components. Tightly coupled components are built to fit a single purpose – they’re dependent on each other and are difficult to reuse in any way. But when you architect with loosely coupled components, they are independent and reusable. That increases the overall extensibility of your platform, allowing you the freedom to innovate.
Think about how many companies have struggled to react to the changes that Covid-19 has brought about due to both organizational and system inertia. To respond with agility, you need to overcome the inertia brought on by tightly-coupled components. You need to take the emphasis off components and shift focus to the data flow between components. You need to swap out components that aren’t working for you anymore and change to those that will suit your changing needs.
How to achieve an agile approach to content
Due to technological developments over the past few years, we have some powerful and fun building blocks for our journey to a modular and agile platform for content — things like atomic design, headless CMSes such as Contentful, functions as a service (FaaS) provided by cloud companies and JAMStack. Let’s look at how these work for our agile content creation model.
1. Atomic design
Atomic design is about re-imagining the way pages are designed. Web design came from print design, which puts the page at the center of the process. Just as print designers would create pages, we’d wireframe web pages and then work out the details. That meant we ended up with things like awkward, slow carousels and dozens of buttons that all look different from each other. This page-centric approach didn’t lend itself to designing a good user experience. The atomic approach means you can build pages from the ground up. You create design systems constructed of components that fit together so that you can use them across the enterprise for a consistent user experience and greater efficiency.
You can think of atomic design as chemistry. You start with individual atoms and build more complex structures from there. Let’s say you take a title atom and an image atom and assemble them into a product molecule. Next, you can build a product grid “organism” from these molecules. Then you can make a product landing-page template and then combine your organism with your template to create a women’s sweater page, for example.
Once you’ve built models for organisms, you can start to build content models to support these organisms, allowing you to create content quickly and easily, with consistency.
Storybook is a tool we find absolutely essential for this process. It enables your developers to build components outside of an application. You can do it without a dev stack or a test database without setting up different test environments, testing each different variation, and worrying about corner cases. It saves you a lot of time.
2. Headless CMSes
A headless CMS represents the decoupling of the content store from the front end. By removing the presentation layer, you can focus on content creation and orchestration, which helps tremendously when you want to be able to use your content across channels and devices. After all, content really isn’t just for your website anymore — you need to publish your content across many channels to reach your audience.
3. Functions as a service
Recent developments in cloud technologies allow you to scale efficiently and, as mentioned earlier, leave the complexities of that scaling to someone else. Functions as a service also relieves you of the burden of building — and maintaining — the infrastructure you need for your applications. You’re able to break down complex applications from monoliths into smaller components and then build APIs from these components. You integrate APIs to make systems, which you can then scale in the cloud infrastructure provided by your cloud company.
This completely takes you away from the old model of replicating physical machines by creating containers in your cloud hosting service. Instead, you can rely on the functionality that cloud providers are offering now. You can build cloud-first native applications that are architected with FaaS. This lets you release your new applications faster, more efficiently and with a much greater ability to test, iterate and improve.
Deploying to Netlify is excellent, especially if you’re using Gatsby and Contentful. You get the ability to preview; fast incremental builds and your editors can trigger Netlify builds from inside Contentful. It’s a single system where you can make all of these changes. You can also add your favorite AB testing tool; at Appnovation, we like Optimizely. Then add your analytics — for example, Google Analytics — and GitLab, GitHub, or whatever your teams like to use for their CI/CD pipeline.
Your platform becomes the glue that brings all this together. You get to set the direction — not the vendor. You figure out what your roadmap looks like and where you’re going to derive value. You’re the one making the decisions that are best for your business, rather than following someone else’s roadmap and letting them make the decisions for you.
Designing for change lets you build a great user experience
Great user experience is a big differentiator in 2020. It drives attention, engagement and ultimately, conversion. To achieve a great user experience, you need to be able to create, test, iterate and make changes quickly. That includes being able to change components of the system if doing so will help you create a better user experience. Any improvements you can make to the tools, systems and processes you use to create content will help you drive a better user experience.
This means you also have to improve the development experience. Developers need to be empowered to deliver great products at speed, without the fear of breaking things. That’s why modern agile development practices are so critical. DevOps, continuous delivery, working in small batches, automated testing, feedback loops, and other modern methods make it possible to deliver small batches, rollback if necessary and iterate. Having this flexibility empowers development teams to innovate without fear.
Just as empowering development teams frees them to create great user experiences, empowering authoring teams frees content creators to deliver a great user experience. At Appnovation, we aim to support authors with great workflows, making sure that the content platform supports their needs. Too often, the CMS and the authoring experience are an afterthought.
We think about developers and content authors’ experience — the people who create content — in the same way, we think about customers’ experience, the people for whom the content is created. So when we’re developing a content platform for our clients, we conduct user testing on the systems we’re building. We ask, “Who is our user? Do our designs work? Which features are important for the future?” We use rapid iterative testing and evaluation to get feedback quickly, so we can test on a small cohort of users, iterate and improve our design.
What’s next, though, once you have your great new shiny system? How do you drive the most value from it? You need to leverage your CMS to be a content hub, not merely a content repository. You have to break free of tightly coupled content delivery; you need to figure out new ways to use your content and new channels to reach your customers on their terms.
One way we do this to think about content optimization: delivering the right content to the right visitor on the right channel at the right time. We do this by breaking down content into individual chunks, and then reusing them in strategic ways. When you create a 5,000-word blog post, you can do a lot more with it than just have it live on your website. You can make lists out of it, make Twitter posts out of it, make short YouTube videos out of it. You can add that content to your Google My Business and Facebook page. Try to use each piece of content you create in the most strategic way possible, and shift from thinking about content management to content distribution.
Tie your content platform to marketing for more effective campaigns
Why does all this workaround content matter? Because if you want to market effectively, you need to let content drive every step of the marketing journey. Marketers need to be agile, so they need systems that are fully integrated with each other and with your content platform.
An integration we favor at Appnovation is tying Contentful to Salesforce Marketing Cloud. The same tool you use to build your web pages can be used to power your email templates. You can give Salesforce Marketing Cloud access to all your content creation efforts, all your product data, web content, mobile content and more, so your marketing team can build persuasive, personalized campaigns.
In closing, it’s a matter of getting the initial version of your new approach — your minimal viable product — live in 60 to 90 days, so you can start testing and experimenting. It’s about moving from the expectation that a project takes a year to the expectation that projects are short and that you’ll use data from your feedback loops to figure out where to go next. Avoid silos. Get people collaborating on the same platform, with access to the same data and content. Use your marketing technology to understand your current customers and find new customers. Embrace the lean-approach. Do all this, and you’ll build yourself an agile, compelling content and marketing machine.