Adobe’s Ever-Growing Commitment to Open Source
Open source is an integral part of how nearly all software gets written today, and has certainly been a staple of software engineering at Adobe. Still, with the acquisition of Magento, the role of open source in our software strategy is perhaps more at the forefront than before, and we’re actively exploring ways to deepen our commitment to open source, both in what we use and in what we contribute. More than any other open source community, Magento has demonstrated a remarkable ability to blend corporate and community code to benefit enterprises of all sizes. Expanding this practice to more of Adobe is a key goal.
More and faster
Adobe currently ranks as the 16th largest corporate open source contributor, roughly doubling our ranking since 2017. Even before Adobe acquired Magento, we had made key changes to our contribution policies that had supercharged employee involvement in open source projects. (I’m writing a separate post to detail the before and after, and how we got there.)
This was in part driven by how we’ve evolved the approval process for employees to contribute to open source projects. Working with our engineering leadership, Adobe first streamlined the process to cut approval time to just a few hours, then we extended that approval to cover anyone else working on the same project. This policy of defaulting to “approval” is pretty unusual for a company the size of Adobe and aligns well to the collaborative and highly active open source contribution culture at Magento. Magento evangelist Ben Marks even commented on our work: “Like many in the Magento community, I was unaware of Adobe’s efforts around open source. My early conversations with the team made it clear that we were joining a company which considers open source a strategic advantage.”
If you’ve been following active GitHub contributors, Adobe has jumped more than 20 places over the past year. While recognizing that we still have a lot of work to do (and noting that GitHub is an important but not the only way of tracking open source involvement), we’re proud of this accomplishment, especially considering the relative size of Adobe compared to others on the list, several of which have double (or even 20X) the number of engineers. In other words, a relatively high percentage of Adobe employees actively contribute to open source projects.
As stated, we know that there’s a lot more that we can and should do, so we’re not resting on our laurels, but our ranking is a reasonable indicator of just how important open source is to how we build code.
Let’s dig into Adobe’s contributions.
Strategically important or personally rewarding (or both)
While Adobe employees choose to contribute to a myriad of diverse projects, there are a few that I find particularly interesting, largely because they show how the Adobe engineering culture is changing to be more open and collaborative.
The first, HubbleStack, isn’t an Adobe open source project, started by two Adobe engineers “scratching their own itches.” As the Eric Raymond saying goes: “Every good work of software starts by scratching a developer’s personal itch.” As detailed by Colton Myers, one of the project’s co-creators, HubbleStack was an effort to unify “security auditing and compliance at scale across many teams with varying infrastructure.”
Adobe now uses Hubble extensively, a signal to our engineers that they can express their creativity through open source.
Another project that grew out of more established engineering practices is Brackets, a perfect project to emerge from a web-friendly, design-savvy company like Adobe. There’s no shortage of code editors, but Brackets is different in that it assumes that not only do web designers and front-end developers want to code, but they’d prefer to have the experience be a pleasure. Brackets does this by “blend[ing] visual tools into the editor so you get the right amount of help when you want it without getting in the way of your creative process.”
A third project is XDM, or Experience Data Model, which presents a different kind of project than HubbleStack and Brackets. XDM is an open specification published under a Creative Commons Attribution 4.0 International License (and available on GitHub), inviting others to tailor the schema to particular needs through custom properties or new schemas. As explained by Adobe Vice President Anjul Bhambhri, “XDM provides open, standardized, extensible schemas to represent all experience data, thereby enabling immediate semantic understanding of cross-channel data and fostering an ecosystem of pre-built insights and services.”
What is “experience data”? Adobe XDM is Adobe’s common data model that defines and unifies the language of data flowing across Adobe Experience Cloud and its solutions including analytics, ad networks, etc. In essence, it’s a way to get all of your experience-related applications to speak a common language. This common language, incidentally, will also include Magento as we seek to make every experience shoppable. By making XDM an open specification, Adobe has made it easier to collaborate with developers at diverse companies as we settle on that common language.
As Ben Marks noted, “Adobe’s open source tools will be an essential early driver of integrations between Magento offerings and the full suite of Adobe products and services, enabling developers to build powerful, elegant solutions. The tools will be a primary vector for Adobe developers to learn Magento and vice versa. In the near future, I expect to see our shared communities build even more packages and utilities which will supercharge customer experiences and business insight.”
And, of course, there are plenty more projects to which we contribute to open source or that we’ve started, including Parcel Bundler (arguably the top web asset bundling technology in the market), Netflix’s Vizceral, Apache Sling, Kubernetes, and more. Sometimes we’re the primary contributor and sometimes we’re a minor contributor. In all cases we’re looking for ways to do more.
Why? Because it’s the right thing to do, it’s the smart thing to do, and it’s the rewarding thing to do. Oh, and it’s a great way to build exceptional software. Will you join us?
Learn more about Adobe I/O.