If you're a Drupal developer, user or fan, you should be reading the blog of Drupal's founder, Dries Buytaert. If you haven't subscribed, do so, because the future direction of Drupal is being documented and discussed there.
Filling out the State of Drupal 2016 Survey this week caused me to reflect on my perception of Drupal and some experiences that I've had recently. I'd like to share these with the community in hopes of stimulating discussion while the vision and strategy for Drupal 8.x and Drupal 9 are being discussed.
I may have missed a blog article or two, but I think what Drupal is has grown beyond the common perception. I'd like to see an article that starts a discussion in the community, answering the question, "What is Drupal today?"
Drupal is a content management system, right? It says so in the Understanding Drupal documentation page. So, open and shut case?
What is Content?
Seems like a straightforward question. Should be easy to answer. Lets look it up in Webster's Dictionary.
The definition of Content as a verb, although tangential to this point, is interesting: "to appease the desires of." In other words, happy or satisfied. Keep that in the back of your mind as we move on to the noun.
Content as a noun is given 3 relevant definitions:
- a : something contained —usually used in plural <the jar's contents> <the drawer's contents>
- b : the topics or matter treated in a written work <table of contents>
- c : the principal substance (as written matter, illustrations, or music) offered by a World Wide Web site
The gist of these definitions definitely gives one the impression that content is something that is viewed, and the World Wide Web is specifically mentioned. The common perception, as evidenced in these definitions, is that content is some type of written, visual, or audio media, contained by another medium. It makes sense that Drupal is a medium for containing and managing content to be displayed via the World Wide Web to individuals. Turn it around to a verb and Drupal is the means for distribution of media which "appeases the desires of" a particular audience.
All well and good with the accepted perception of Drupal so far. Drupal took off by managing nodes of content, of which there could be many content types. This was the case, and the prime idea expressed by the software (contributors?), through Drupal 6. Something happened with Drupal 7 though - a new idea was abstracted, codified, and expressed - the Entity (rose to prominence?).
Entity = Thing
Perhaps at first the difference (between Content and Entity?) seems trivial, and for a time perhaps it was. I believe people name things for a reason, so the word entity is not content and it is not node, so it must mean something else. I wanted to know what the word Entity means, so i looked it up.
1 a : being, existence; especially : independent, separate, or self-contained existence b : the existence of a thing as contrasted with its attributes
2 : something that has separate and distinct existence and objective or conceptual reality
Hmmm...definition doesn't sound like the one for content. An entity is something that exists. It has a self-contained existence. It's not necessarily contained in something else.
Ok, does this mean that content got out of the jar? At the very least, we know that content is a more specific thing, than the concept thing itself. All content are things, but not all things are content. Not all things are meant to be displayed, nor or all things created for the purpose of "appeasing the desires" of an audience.
An Entity (is there something to link Entity to on Drupal?) is not necessarily contained within Drupal, it may simply pass through, or process. There can be remote entities for example with data that is not stored within Drupal's database. In a way, Drupal allows a mapping, a translation, for data to flow through a process.
Is a Product considered content? With Drupal Commerce, a Product is not a node, but what is its purpose? It could be content. We display products on websites so that people buy them and appease their desires. There's that, but there's also data associated with it that the user may not see, that's used only for administration of an automated process, the process of selling and distributing products. Is a Line Item content? How about an Order? What if you're storing statistical data for later analysis of the habits of South American tree frogs? Is data content? Where do we draw the line, and more importantly, where does the public perception of content end? At what point does content become just data? At what point are the differences large enough between the concepts to become noticeable?
Is there a point here?
The point is that Drupal is more than a content management system. It's an entity management system, or a thing management system, or how about just a management system? Or....
Anything Management System?
At this point enquiring minds might want to look to the definition of Management, because the first word could mean literally "anything." (this first sentence is a joke? It took me a minute) The aim of management is generally to plan, coordinate, and supervise a process. The process may be a warehouse, a bakery, or a website. We could say that a digital management system helps plan, coordinate, and supervise processes, and it attempts to codify as much as possible so that the amount of work and attention actually required by a human manager is the least amount possible. There's another word for this type of thing: Automation.
Drupal is an Automation Management System
When I develop or implement a Drupal website, I am automating processes. Drupal both IS software and PROVIDES me tools for which I can build software so that I can develop systems which automate processes for clients. Clients want this because it increases the efficiency of their organization. Maybe I'm simply automating the organizing and editing processes of text, video, and audio content and its display? Sure, there's high demand for automating the content (management/creation?) process.
The thing is there's high demand for automating virtually ANY process. We live in the automation age where everything that can profitably be automated is in the process of happening now. Future efficiencies will continue and accelerate the trend.
The Entity concept allows me to conceptualize and codify ANYTHING into a data structure. It also plugs into an architecture designed to process it. That is automation. That's what we're all doing(when we xyz), everyday.
The process I design may be some calculations or analysis, or it may be the processes of distribution or presentation. The process may send the entity to another software system or it may make my phone ring.
What other processes can Drupal automate?
I have been thinking about this for some time, and last year I had experience at BADCamp that "shook" me. I realized how far my perception had shifted from that of the common sense CMS perception of Drupal. I have a passion for learning, and I translate that passion in the realm of web development into the creation of online learning platforms. I attended the Higher Learning summit, and was excited to talk to professionals in the learning field. I wanted to talk about using Drupal as a platform for creating online learning systems (link to something?). They wanted to talk about marketing, and "run of the mill" content creation. They wanted to learn more about how Drupal can better be used to market their university offerings. I was disappointed to say the least.
This is nobody's fault, and nothing is wrong. I just realized that they didn't see Drupal as a system that could be used for engaging learners and documenting their experiences and interactions. They hadn't abstracted the principle because they're immersed in their world, and perhaps not jumping around a variety of industries, automating a variety of processes. I've been letting this stew for a while, until it struck me while filling out the State of Drupal 2016 survey, that what I wanted to give as feedback wasn't a question!
Let me be clear that I am in no way criticizing Drupal, its leadership or the community. In fact, I'm wanting to say (I think?) it's better and more powerful than is commonly perceived.
So as we discuss the future, as decisions are made for the direction of the project, I propose we step back for just a brief moment, and consider the question, "What is Drupal today?", "What does Drupal make possible?". My opinion is that Drupal today is an Automation Management System, and that literally anything is possible. Drupal can automate learning processes as well as the simpler content creation/presentation process. This is only my opinion and I hope I can generate some small amount of discussion on the subject.
What features are then important for making the best Automation Management System? What does that mean for possible future decisions? That's not for me to decide, but it is for the entire community to discuss.
For sure we (who?) will continue to automate the processes of content creation and organization, adding features. The traditional usage of Drupal for marketing and media websites will continue and expand. These are some core use cases that have been handled, and continue to improve. It's an incredibly necessary and useful case, a case which once covered leads to many more opportunities. I simply posit that this is but one in a wide field of use cases which Drupal is perfectly suited for. Put another way, perhaps Drupal "nailed it" in terms of managing content, and because of that, much more is now possible.
Filling out the State of Drupal 2016 Survey this week caused me to reflect on my perception of Drupal and some experiences that I've had recently. More than a Content Management System, Drupal is an Automation Management System, and that means literally anything is possible in terms of applications and information management. Drupal can automate learning processes as well as the simpler content creation/presentation process. As decisions are made for the direction of Drupal 8.x and Drupal 9, I’d like the community to consider the question, "What does Drupal make possible?"
Content photo by Mathias Klang
iDevices photo by JuditK