In the world of online retail, it’s never been more important for brands to move quickly. For some organizations, the time between ideation and realization of customer value can be weeks, months, or even years. This can frustrate both merchandisers and technologists. Who wants to wait that long to see their innovation—or worse, critical bug fix—come to life?
Which is why a mature DevOps program is essential. DevOps is the harmony between development and operations to provide a seamless software delivery flow, focused on providing customer value as quickly as possible. According to Puppet Labs’ “2016 State of DevOps Report,” teams that practice DevOps deploy 30 times more frequently, have 60 times fewer failures, and recover 160 times faster.
In the world of Salesforce Commerce Cloud (SFCC), DevOps has become somewhat of a unicorn. It’s inherently difficult to adopt many continuous integration (CI) and continuous delivery (CD) practices when working with a monolithic software-as-a-service (SaaS) platform that provides all layers of your web application—database, application, web, and even an embedded content delivery network—without modularization.
Over the years I’ve been thrilled to take on these challenges, for myself and my clients. I’m happy to share some of my experiences with you here.
I’ve positioned the following suggestions within the context of The DevOps Handbook, by Gene Kim, Jez Humble, et al., which heralds a framework called “The Three Ways.”
The First Way: Flow
The first way is focused on moving flow forward, identifying your constraint, and finding ways to exploit or relax it. Here are two of my favorite ways to improve flow in the SFCC world.
Spin up on-demand sandboxes. Anyone who’s been working in SFCC for a while can attest to the pain involved in provisioning a sandbox: it often takes two weeks just to get the environment available, and another day or two to get the build and data set up.
This historically has been a huge constraint, but Salesforce released on-demand CI sandboxes in late 2019. This is a game-changer, because now DevOps technologists have the flexibility to spin up sandboxes for any purpose, whether it’s onboarding a new developer or creating a test environment against a specific code branch.
Integrating CI boxes into a software development lifecycle has massive potential that the SFCC community is only beginning to explore, and Astound has the capability to help customers reduce their credit spend by scheduling sandbox uptime. Reach out if you’re interested in learning more.
Adopt automated testing. The ability for SFCC to adopt open source automated testing frameworks expanded dramatically with the release of JavaScript Controllers in late 2015. That ability further expanded with the release of SFCC’s reference application, Storefront Reference Architecture (SFRA), in 2018, which included an out-of-the-box reference suite of unit and integration tests.
I’m a huge proponent of test-driven development and feel this is an enormously underutilized paradigm in our community. Its up-front costs are significant (likely between 30 and 50 percent of additional development time and money), but the gains in speed and agility long-term are worth it.
The Second Way: Feedback
The second way promotes the amplification of feedback loops, including the following practices.
Continually refine notifications. Over my years working with SFCC, I’ve become inundated with emails. Jobs are run to synchronize catalog, inventory, pricing, and orders between SFCC and enterprise resource planning systems, and when something goes awry, an email hits my inbox.
Sadly, most of these are false positives. A good DevOps practitioner should take the time to refine these alerts and identify the ones that are truly meaningful.
According to Tom Limoncelli, author and former site reliability engineer at Google, “In an ideal world, we would delete all the alerts we currently have. . . . Then, after each user-visible outage, we’d ask what indicators would have predicted that outage and then add those to our monitoring system, alerting as needed. Repeat.” I think this is a tremendous approach to tweaking job=error notifications until they’re truly actionable and valuable.
Navigate error logs like a pro. SFCC’s Log Center is a great tool for digging into the breadcrumbs your faulty code leaves behind, but it’s limited to the last five days of logs. The browser plugin DWithEase is another useful tool for formatting and highlighting all of the SFCC log files still in the application.
Augment feedback with tools in AppExchange and LINK Marketplace. Consider integrating with real-time monitoring solutions and advanced logging and metrics solutions such as Ideatarmac and PerimeterX to provide advanced monitoring and notification capabilities.
The Third Way: Fun
The DevOps Handbook calls the third way, “continual learning and experimentation.” I choose to call it, simply, “fun.”
Once you have the first way and second way down, you’ll be better able to experiment, and that’s when the fun—especially for business users, data scientists, and analytics gurus—really begins.
Experiment with A/B testing. The native A/B testing framework on the SFCC platform is somewhat limited, but once the first and second ways have been thoroughly adopted, A/B tests can be more safely deployed. At Astound we’ve begun experimenting with application-level A/B testing via custom code, which could be used to promote ideas such as blue/green deployments.
Leverage reports and dashboards. Those feedback loops you amplified in the second way shouldn’t be used just to monitor the safety of releases and error logs: you can put that data to use to monitor conversion rates and more. SFCC has several out-of-the-box technical and business reports you can export into other tools (such as Google Analytics or Salesforce Sales Cloud) and use to build even more advanced reports and dashboards.
Up your testing with AppExchange and LINK Marketplace Apps. Experiment with more-mature personalization and A/B testing capabilities via apps available on the AppExchange and LINK Marketplace, such as Dynamic Yield and Monetate.
With Salesforce Commerce Cloud, retailers enjoy an enterprise-scale ecommerce platform. By adopting DevOps, SFCC customers can exploit their markets and deliver amazing customer experiences—fast.