For almost a year now, I have been gestating an idea about Drupal fitting into a larger world view. As part of the development community, our focus is making Drupal as flexible as possible in order to meet our own needs and those of our clients. In this process, we put into place most of the pieces that position Drupal as a solid, free, easy-to-use website-building application for the rest of the world. This is the first draft of my thoughts, which will grow and evolve as people within and outside the Drupal community contribute their feedback. Thanks in advance for your comments and input.
A few weeks ago, I attended the NetSquared conference in San Jose, CA. The conference's mission is "to spur responsible adoption of social web tools by social benefit organizations". This basically means: Web 2.0 for Good. The conference brings together web experts with non-profit organizations, philanthropists, and investors in order to come up with ideas to make the world a better place. I was amazed at the number of groups who were either already using Drupal or setting up their system to use Drupal. Others were doing technology research and asking questions to which the logical answer appeared to be "Drupal".
If you are unfamiliar with Drupal, just imagine it as a giant bin of free Lego-style building blocks for creating any type of web site. Drupal is an incredibly powerful platform. Its modular system and underlying application framework can allow rapid deployment of incredibly feature-rich sites. All you need to do is imagine what you want to build and start putting together the pieces.
Drupal's extensive user permission system has made it known as a community site building platform, and its underlying API allows plug-ins to alter data, create pages and content, and change the way a site works. In addition to basic blog-like text-based content management, this flexible system has spawned modules to manage image, audio, video, add date/time-based information to any content and display it on a calendar and/or in an iCal feed, tag any content with geo-location data and then plot it on a map or allow searching by geography. There are modules to add ecommerce functionality, manage user buddy lists and allow private messaging between users as well as set up public and private groups within a website where users can set up their own special interest groups with their own mailing lists, calendars, etc... and more and more (over 700 right now) of these building blocks are being contributed by an international community of programmers every day.
My favorite story from the NetSquared conference comes from Kim Lowery of Kabissa who talks about a village in Nigeria that had agreed to let an oil company access their land and resources in exchange for clean water and school buildings. After a few years of letting the oil company get what they wanted, it became apparent to the people of this village that the oil company was not going to fulfill its end of the bargain. Ten years ago, these villagers would have had no recourse. But these days, they have their own website and the leverage that goes with it. They scanned the original contract and posted it on their site and followed up with a few emails to Amnesty International, Human Rights Watch, and the like. And before long they had a campaign going to bring people's attention to the oil company's failure to deliver on its promises. A few months later, the oil company began showing up to the village, taking more interest in their needs, and began delivering on some of their promises.
The web can be a powerful force for social change. It can give a voice to those who might not otherwise be heard. It can also bring together those with similar needs empowering both with the simple knowledge that they are not alone.
The participants at NetSquared recognize this. And many of them have turned to Drupal as the platform on which to begin this empowerment. They have been impressed with how flexible the application is and how they can add large chunks of functionality quickly by using the many free modules. However there was hesitation to use Drupal because of word-on-the-street which went a bit like this: "Drupal is what you want. It will solve all of the problems that you're having. But it's really hard to set up. And don't do it wrong or your site won't work at all!"
These groups expressed many of the same frustrations:
- Drupal is confusing and difficult to set up.
- The learning curve is steep.
- They are unable to find good documentation, developers, and general help in creating and understanding their Drupal web sites.
- It is especially frustrating to them because they can see the light at the end of the tunnel. They see beautiful Drupal sites offering features similar to those that they are hoping to implement, but they often can't figure out the route to successfully reach that end.
These are not technical people. And they want to build sites for even less non-technical people. They want to bring Drupal to third grade teachers in Indiana, church-basement activist groups, street orphans in South Africa, or Vietnamese farmers. These people may have very little experience on the web. The idea of "filtered HTML" is likely beyond their concern. And administrative idioms such as "node", "taxonomy", "vocabularies", "terms", even "menu items" and "blocks" are usually only understood after some conscious effort. Drupal professionals and enthusiasts quickly forget how foreign these "Drupalisms" might have appeared when they first lay eyes on them.
There is a saying that most Open Source software like Drupal is built by developers for developers. When the software is free and the developers are generally unpaid, there isn't necessarily a good reason to go the extra mile to make it user-friendly-- particularly when it comes to user interface. This is slowly changing, but Drupal's configuration and learning curve can still feel quite overwhelming for a non-technical site administrator. We need to get Drupal into the hands of many more ordinary users so that we can break out of this developer-centric view. And in order to do that, we need to get a lot more user-friendly.
A skilled Drupal developer can piece together something like a community events management system with discussion boards and event-related photo galleries and mailing lists in a day or so. However to the Drupal novice, this project could easily take a several months spent getting up to speed on Drupal's core concepts, experimenting with various modules, trying to figure out what is reasonable to ask of Drupal, and deciding how to wire things together. The process of reducing complexity to ever more elegant simplicity can be done. We even know how to do it. But it will take time, money and vision to make it happen.
Anyone who has used Apple's iMovie or perhaps Apple's Automator can understand how even very complex operations and configurations can be simplified into a friendly user interface that the average user can begin to grasp. It's also important not to ignore the "play with it" fun aspect of these drag-and-drop interfaces. They invite experimentation which quickly leads to an understanding of the system.
Drupal could become the server-side counterpart to Firefox. It could be to web servers as Ubuntu is to the desktop -- as beautiful as it is flexible. It could be inviting to end users rather than off-putting; fun rather than frustrating. It could spark the imagination and inspire even novice web administrators with its many possibilities.
We have a very solid foundation on which to build this vision, however I believe that we've reached a bit of a stuck place. Drupal has lots of back-end developers. Drupal needs front-end users. We need a way to "prime the pump" and introduce front-end people to the project. We need to show them what Drupal can do. We need to expand beyond our current base of techies.
As a village becomes a city, it needs to address needs like paving the roads and removing the garbage. Small problems become large as the community grows. The road workers and garbage collectors need to be paid. Work such as maintaining the drupal.org documentation, forums, the CVS repository, or tuning the drupal.org servers used to be small tasks. They are now large tasks. The Drupal Association was created to address some of these needs. It funds support activity around Drupal's code such as purchasing and maintaining the hardware to run drupal.org, and organizing Drupal conferences. However most of these changes need to happen within the code, reaching the limits of what the association is responsible for. Drupal is outgrowing volunteerism. I believe that if Drupal is to grow to its full potential, it is time to start paying people do do these essential tasks.
What if we had unlimited funds to grow Drupal into its full potential as an indispensable web tool that is simple to use and lets people get control of maniacally complex data. Let's think big! The groups that I talked to at NetSquared had many common problems with Drupal that they are trying to solve in individual ways. What if we take an umbrella approach to fix all of these problems and more? What if we could assemble an expert team of Drupal developers and provide them with all the guidance and resources they need? What if we could make it our goal to make Drupal the best website building application the world has ever seen? Where would we start? What would we do?
Here are some ideas:
- Drupal's user interface and configuration system need to be overhauled with the guidance of usability and user interface experts. In Drupal-fashion, any new interface conventions need to be flexible and available to all modules. An interface style guide should be written to provide guidance and recommendations to developers as they create new modules.
- Drupal should have a core library of beautiful and self-explanatory icons and design elements available to developers to help facilitate clear non-text interface elements. Icons use less screen real-estate, are quick for the eye to find, and do not require translation.
- Drupal.org should be an inspirational Drupal site with lots of marketing-style information. It should offer easy-to-find resources for both new and experienced Drupal users. It should provide clean, solid, documentation as an easy barrier of entry.
- api.drupal.org should be maintained, easier to use, and benefit from Drupal's strengths as a community-building platform. PHP.net makes its developers feel like they have all the development information they need right at their fingertips. There are comments and guidance on almost all of its functions. There is no reason that our site couldn't offer many of these same features. It might even be possible to extend the site to encompass some, if not all of Drupal's contributed modules.
- We should talk with "ordinary" web users and ask them what features they want and expect of an easy-to-use content management system. These people often don't get much of a voice in the uber-technical Drupal community and their requests for items like a solid, easily configurable, highly integrated WYSIWYG editor go unanswered. We need to hear and understand the needs of these users and address them one by one.
- Drupal needs more extensive and sexy themes to allow site builders to quickly get what they are looking for.
- Drupal should have maintained, funded distributions (pre-configured packages of Drupal with add-on modules and themes) to act as a quick-start launch pad for various common website types.
- Drupal should have maintained, funded translations of both core and popular contribution modules.
- Drupal needs marketing experts to promote it and bring it to the people. Simply "being good" isn't good enough. People need to hear about it.
- More effort needs to be spent exploring parallel non-HTML delivery of content. Drupal already excels in this area, but it should be clear and easy to set up SMS or WAP interfaces for Drupal as well as text-to-speech and telephone-based audio content management interfaces so that those without web-access can still benefit from Drupal's strengths in managing content.
These problems will not be solved efficiently during evenings and weekends. This needs to be a concerted effort with funding behind it. Although perhaps the community could get there on its own, the potential benefit is so staggeringly huge that I believe that there are groups out there who would be willing to volunteer funds in order to realize this vision.
I can foresee a time when a small village in Nigeria will be able to open their $100 laptop, connect to the $100 server they have set up in their town hall, click "make a website" and effortlessly put the pieces together to communicate with the world and with each other. Or a third grade teacher in Indiana, working right in front of her students, will be able to plug Drupal modules into the school website that allow her class to exchange messages with a third grade class in India. We have most of the modules already. Our techies are developing more daily. What we are missing is the "effortlessly" part.
With a concerted push, we could solve these problems once and for all and provide free, easy to understand, user-friendly software to empower anyone, anywhere on the planet, to create the website that they need, to provide the communication that they need, to make their lives better.
This is how Drupal will save the world.