We love open source because it means anyone can get involved, making the community vibrant and the web full of inspirational sites. See why we love Drupal and how we got involved:
Angie Byron is a web architect and part of the team at Lullabot.
Angie is obsessed with Drupal, working with open source and getting new people (especially women) involved, and just geeky computer stuff in general. When the keyboard is pried from her hands once or twice a year, Angie enjoys video games, logic puzzles, drawing silly cartoons, and political books and documentaries.
Originally from Rochester, Minnesota, Angie now lives in Montréal, Québec, Canada, Canada with her wife Marci and their four kids: Pickle, Cooper, Bebop, and Oscar.
To me, Drupal is three things:
a) It's a content management system, which allows you to build easily customizable websites, very often with no coding required. Drupal takes a "big box of building blocks" approach to website creation, where adding a feature on your site is normally as simple as snapping together a few modules and twiddling some configuration. Drupal can be used to build a simple blog or a diverse community-driven social network or an internal project management tool; it's all in how you snap together the "blocks."
b) For the geeks who *like* to code though, and want complete control over what their website looks like and how it behaves, it's also a robust content management framework. Drupal offers many opportunities during a typical page load to "hook" in and completely change its default behaviour without ever modifying (or "hacking") the default files. You can build in additional, fine-grained access control, completely redesign its standards-compliant output, or turn off all of the bells and whistles and use it as a means to power a web service-driven application.
c) But more than either of those, it's a thriving and diverse community of contributors, and this is the key strength of Drupal. Drupal has a really big concentration of extremely smart people who are constantly innovating new and creative things that help us to build even more powerful sites. And this is coupled with a strong desire to mentor and empower new contributors to make a difference. Whether that difference is coding up a cool module that enables neat new features, or fixing documentation so that it's less confusing to newcomers, or coming up with marketing materials that can be used at conferences -- every contribution matters, and the community goes out of its way to foster opportunities for people to jump in and join the fun.
I was originally a Google Summer of Code student back in 2005. I had heard about Drupal because SpreadFirefox.com (a grassroots marketing and activism site), used them, and I thought it would be neat to work with a project that was enabling this kind of awesome grassroots marketing. I was pretty much an outsider to open source at that time... while I was certainly a user and strong advocate of open source software, I had always thought that the only people who worked on open source were super geniuses who'd been coding since they were in diapers, so I had never actively contributed to any.
SoC poked a tiny hole in that impenetrable force shield and gave me the courage to try my hand at becoming a participant in the open source world rather than an observer. And when I realized how awesome it was, I became, well, a wee bit obsessed. ;) The Drupal community was (and is) completely awesome and supportive and always encouraging and challenging me to try digging into new things. Now I'm making up for lost time. ;)
I'm a bit backwards in that because of my roots, I actually *develop* Drupal far, far more than I ever actually *use* it for anything. ;) My blog runs basically straight-up Drupal core, and I have one "seasonal" Summer of Code-related community site that runs Drupal, but otherwise I just have a variety of personal projects at various stages of atrophy that I've been trying to move to Drupal, but haven't found the time yet, and probably never will. :D
So most of my day-to-day use of Drupal is as a user: on Drupal.org, on Lullabot.com, etc. While we sometimes build out full sites from start to finish for clients, more often than not I'm diving into one particular aspect of Drupal that a client's having problems with and coming up with an answer, or listening to feedback from workshop attendees using Drupal for the first time on what they find confusing and turning that feedback into patches.
My only other experience with content management systems was PHP-Nuke, and the experience was so horrific that I swore off ever using a content management system from then on, and decided that building everything from scratch was the way to go. Even at the start of Summer of Code, I had in mind that I would only use this thing for 3 months, maybe pick up a few ideas, and then go back to my custom stuff.
But as I delved more into the code, I discovered the rich level of thought that has gone into the architecture of Drupal to make it as flexible and customizable as possible. I discovered elegant solutions to problems I had never even thought to think about solving. I discovered a code base that constantly added tremendous improvements at a frantic pace that I could never keep up with on my own. But most importantly, I found a community of people who were passionate making this piece of software the very best it could be, mentoring along anyone who was willing to put some time in. I was sold. :)
We have three "big" problems, from my perspective:
a) Drupal "core" is very slimmed down, by design, since it's intended to be a framework. In order to really reap the benefits (and power) of Drupal, you need to enable add-on modules that provide the features your specific site's needs. The downside of that thriving development community I rave so much about is that there are approximately 50 bazillion modules, some of which do very similar (or even the same) things, and more are being added every day. So it's *very* challenging, for both new and seasoned user alike, to determine which modules best solve the problems they need to solve for their sites, as well as if any of them are any "good" or not. Drupal.org offering things like ratings, reviews, usage statistics, and quality assurance measures such as test coverage, can really help in this regard.
b) Drupal has its roots in a project by developers, for developers. The prevailing logic was, more or less, that it doesn't matter what it looks like out of the box as long as there are proper hooks so you can modify it to fit your client's needs. Over time, as Drupal has gained market traction and notoriety, our community is beginning to shift to containing far more "end users" than it used to, and these folks are starting to point out glaring problems in Drupal's usability that the developers are by and large blind to since we use it all the time. After a couple of high-profile formal usability studies that showed very clearly how and where people struggle with Drupal, the development community is now starting to make the shift towards valuing the usability of Drupal equally as highly as they value the flexibility of its underlying architecture. What we need now is more core coding efforts to take us in this direction, and more "big thinking" usability folks to give us guidance as we go along.
c) There are also just the general "trouble spots" for Drupal. It has a steep learning curve, in part because of inconsistencies and various "Drupalisms" people need to know. Migrating data into and out of Drupal and deploying changes between a development and "live" environment is currently pretty painful. Our community has traditionally not been great at attracting designers as it has attracting developers (although hopefully a new, well-designed website will help with that ;)). And so on. I'd like to see some strong Drupal 7 and community outreach efforts towards solving these types of problems.
As a SoC student, I found myself in a unique (and terrifying) position of having to know absolutely nothing about Drupal (not even having installed it before) to becoming a proficient developer in it, in 2 months. So the advice I would give new comers is to follow the same course of action I took, since it's the only way this was even possible: get involved in the community.
Beyond the "warm fuzzy feeling" you get from helping others, contributing in the community helps you accumulate "karma" which is essentially the currency of a "do-ocracy" like Drupal. Higher karma affords you:
I think we're in for some exciting times; as more people come into the community, more innovation happens, and the power and scope of the sites we can build dramatically increases all the time. I have high hopes for the Drupal 7 release to help bring Drupal to the next level, both in terms of architectural/API expansions and clean-ups, as well as usability improvements to make our product offering useful out of the box to "mere mortals" while still offering tons of options for "power users." I'd also like to see us opening up more "formal" paths for new contributors to get started so that we can increase our pool of contributors, both in terms of raw numbers and diversity of talent.
Forums – Get advice and give advice.
IRC – Start chatting now with other community members.
Modules – Build a module that other Drupal users can enjoy.
Themes – Feeling creative? Design a theme for other people to customize their site with.
Translations – Fluent in French or a speaker of Spanish? Translate Drupal for other users around the world.
Events – Come to a Drupal event and have fun with the community.
Donate – Whether you want to say thanks or ensure there is a secure future for Drupal, every little bit helps and is gratefully received.
Projects – There are always projects that need a little extra help and attention along the way. Below are just a few that you can get involved with:
Advertising funds the all-volunteer Drupal Association members to deal with serious issues such as hardware upgrades.