Definition of Terms in Open Source: Tools, Products, Platforms, Services
Living in the open source software world, we use a lot of generic terms that mean different things in different contexts.
I’ve been thinking a lot about this for years, and have started to discipline myself in using the right words at the right times.
Using these words more consistently made it easier to discuss the landscape, and to understand all of the pieces and how they fit together.
An open source tool is what everything else is made of.
Command-line programs, libraries, extensions, bundles, modules, themes.
Software encourages reuse and sharing, and share we do. GitHub is full of an inordinate amount of code. Some small fraction of it is actually in use.
The ones that are in use are awesome, in the literal sense of the word. Simply having a computer, an internet connection, and unblocked access to GitHub.com will empower anyone motivated enough to drive their own learning.
Now that we have tons of great, empowering tools that we all share, we have been able to create a massive ecosystem and economy built on “products”.
Any product is more than a collection of tools: it is a designed experience.
Any great product empowers it’s users. Great products make great businesses.
Most products have a single purpose. They are designed to solve a single problem.
Drupal & Wordpress, as products, are designed to make content creation and management as easy as possible. They are designed to solve the content and people management problem.
An open source platform is something that can be built upon. by others, just as the metaphor implies.
The best products evolve into platforms, just as the best businesses do. Some products will only ever be products, as they were designed to be.
Drupal & Wordpress, as platforms, are designed to empower an entirely new generation of products and services and they certainly have. A significant chunk of the internet is built on just these two platforms.
The Drupal platform has allowed numerous products to be built on top of it, in the form of “Drupal Distributions”. OpenAtrium, DKAN, DevShop, and 100s more free and open source products came about because of the Drupal Community’s decision to invest in it’s platform.
The “install profile” concept, “makefiles”, drupal.org code repositories and the distribution packaging system are all tools that work together to provide a platform for others to build more tools and more amazing products.
OpenAtrium is like BaseCamp. It helps organizations to communicate. If you don’t like how it functions out of the box, you can extend it and modify it to your heart’s content.
DKAN is an open data portal. It is like CKAN (also open source, but in python) or Socrata (A “service”), but it’s built in Drupal, so it’s no problem to add something as simple as a basic page or a blog post. This is very difficult (if not impossible) to do in the purpose built product of CKAN or in your Socrata site.
Thanks to Drupal, products like OpenAtrium, DKAN, and DevShop are all platforms themselves that empower others to do more.
Services are products sold by a company. The product might be open source but the tools powering the services are not, with good reason!
Investing in open source infrastructure and support systems is really challenging, partly because being good at building those things has historically been what set technology companies apart from one another. It is critical for their business models to maintain their intellectual property and business secrets.
Many services now exist to support open source product and site building: Drupal and Wordpress sites are cranked out by the 1000s per year.
Commercial services provide a critical role in the open source ecosystem: funding the design and the development of the next generation of tools and products.
Beyond the technology, commercial services have time and money to invest in research and development of entirely new systems. Coming up with these things is no easy task.
Just the idea of using git to automatically push code to your servers was amazing and revolutionary just 5 years ago. It was commercial services such as Heroku and Acquia that drove home the idea that every system needs this workflow.
The key to Open Platforms: Community
All of this would have never existed without the sense of community Drupal brought along with it’s code.
From day 0, Drupal was used to bring people together and it’s creators embraced openness and collaboration.
Platforms empower communities, but only if the community invests in the platform.