I'm reading a book on financial modeling, where the author says, "if you can model it, you can understand it." Try to move past what a dork I am for reading that book, and I'll explain. Basically, if you can set up the pieces of a business into something measurable and tangible, the valuable pieces become clear. I think a similar concept applies to systems like Drupal: "if you can understand it, you can build on it." Or another way: broad adoption of a concept requires that someone besides developers understand it.
So, if you’re using Drupal or considering it, you might know that a Drupal distribution is a “starting place” for building a web site, beyond Drupal core. But beyond that, most explanations of Drupal distributions end with “you know, like Linux.” You lost me at hello. But, since distributions are a big part of my job, I needed a way to explain it. So, for the not-so-technical, the business people, the wannabe nerds: this one’s for you. Here goes:
I don't know code. I know food. So let's pretend that code is food.
So Drupal basically acts as a big-ass kitchen for code. Drupal provides a set of ingredients, utensils and tools to help a community of cooks create useful things and present them beautifully. Plus, it’s a place to store that code, share it, and improve it. So what's coming out of this kitchen? Let’s start with dishes and meals.
Modules will be our "dishes" -- like, say, a caesar salad or penne arrabiata. Modules are made up of ingredients that come together to fill a specific need. So, just as your appetite for a caesar salad cannot be filled by pasta, you cannot do with the Boxes module what you can do with Feeds -- modules fill specific needs.
So, shops like ours take these ingredients (straight up code) together with many "dishes" (modules) and put together meals for our customers. And we don't just create some meal -- we create a custom meal for each specific customer, from scratch, designed just for them.
But here's what we’ve noticed: there are similarities in the needs, tastes, and preferences of certain groups of customers. Most conference web sites need sign-ups, session submission forms, and payment options. And most newspaper sites need articles, advertising, and a way to promote content.
So, when someone really likes the meal you've created, what do they do? They ask for the recipe, of course.
And that would be an installation profile. An installation profile is a recipe -- it tells you which ingredients and dishes to put together to create the meal you’re looking for. That is, it installs Drupal with the specific modules, configurations, and settings necessary to accomplish a specific set of needs. Anyone can customize the recipe however they want. But to be clear, "having the recipe" does not equal "being a great cook." Technical skill is necessary to use an installation profile successfully.
So…what happens if you need more than just the recipe?
Behold, the distribution, aka "the code restaurant." So, distributions go a step further to bring the recipes, ingredients, and dishes together on a single menu. So, just as you go to a Thai restaurant if you expect to choose from a menu of Thai dishes to have an authentic and delicious Thai meal, you go to a reputable Drupal distribution if you're looking to choose from pieces of functionality that were specifically chosen and designed to create the kind of site you’re looking for.
Now don’t get itchy, if you're a technical person: I know there is not a technical difference in the way installation profiles and distributions are implemented. But from an end-user perspective, distributions indicate inclusion of more components that make it a bit more of a polished product and complete solution. Or another way: all distributions are installation profiles, but not all installation profiles are distributions. Ok, we cool, nerds? Cool.
So back to food. In a distribution, most people don't order everything on the menu. Most people use the distribution as a starting point because it was created and is maintained by experts in the field. From there, you choose what you want, and turn off what you don't. It’s your responsibility to find the good stuff, use what you need, and customize it accordingly, but it's a hell of a lot faster than starting in your kitchen from scratch.
So, now that you’re hungry, bored, or both, let’s ask ourselves: who cares? Trust me, I'm a little shocked that I do.
But I do. Becuase here's the deal: right now, there are a lot of people talking about Drupal. From those just considering Drupal, to experienced developers, to bleeding edge innovators, there is room for all of us. Fine dining chef or short order cook, we all need to be able to understand what’s in the kitchen. Being able to explain and use these tools makes all of it - the modules, installation profiles, and distributions, more powerful for the entire ecosystem.
In short: these concepts matter for adoption, and adoption matters for growth and continued innovation. Even if it does mean comparing a Drupal module to a caesar salad.