One year Drupal anniversary: A Review

In May, 2009, we made the executive decision to build websites exclusively in the Drupal CMS. What follows is a brief assessment after year one on Drupal, including some of our experiences and observations. Looking back, our unanimous conclusion is, it was unequivocally the right decision. In reflection, the only 'regret' is that we didn't make the commitment sooner. We came fully in to the Drupal fold when Drupal 6.x was in healthy deployment. This eased our decision tremendously, since we had investigated Drupal previously, but were not nearly as impressed with versions 4.x and 5.x. Drupal 6.x, in our opinion, represented the most notable shift toward an enhanced usability. Prior to version 6, our opinion of Drupal was that of an impressive, geeky niche CMS player good with multisite deployments, etc., but not for everyone. Since then, we've come to believe there isn't a project on the web Drupal can't handle - indeed, isn't well suited for.

First, The Learning Curve (myth?) - (Re)visited

To settle the 'Drupal Learning Curve' debate - if Drupal creator Dries Buytaert says there's a learning curve (and intricately diagrams it) - then yes Virginia, there is a learning curve with Drupal. Once that dirty little admission is out in the open, one is free to proceed accordingly. But until this Achilles' heel is properly addressed, it will act as an 800 pound gorilla pummeling your Drupal projects into oblivion. Left unchecked, this issue presumably becomes the boat anchor of many shops seeking to commit to Drupal. In hindsight, we fell prey to this fatal mistake. We didn't commit proper attention to the dreaded curve. This resulted in tremendous frustration, at times a general feeling of "what's wrong with us", and of course, delayed projects, and missed client deadlines and expectations - not good. Let this be a harbinger for newcombers - if you're considering Drupal as the primary development platform your shop will use to build sites - commit the time, energy, and resources to getting up to speed first, then and only then, begin building production sites in Drupal. Had we to do it over, that's the route we'd choose.

In The Beginning...

Fully transitioning from the (Microsoft) asp.net world over to the Open Source (L.A.M.P.) camp was the initial hurdle. The aforementioned paragraph notwithstanding, we found the transition fairly painless, mainly because, contrary to our experience with the asp.net community, the Open Source camps (Drupal, php, etc.) are generally very open, friendly, and willing to help and share with newcomers. This dramatically accelerated the initial stages of the move. To be quite frank, the fraternal nature of the asp.net community is in our observation a double-edged sword. On the one hand, one might argue it as a bulwark against rogue coding and malfeasance, and a means of maintaining strict standards. On the other hand, it quenches rapid and robust development, as well as widespread voluntary (Microsoft products are not known for freedom of choice) adoption. In contrast, the Open Source community has thrived in various endeavors, garnering widespread adoption by creating in users of all types a sense of 'ownership'. To demonstrate, one has only to consider the fierce loyalty of the Linux OS community. However, learning your way around the LAMP stack cannot be understanded, particularly for noobs. We've put on Drupal seminars, and on many occasions we've spent the majority of the time on understanding the LAMP stack. On that note, if you're new to all this jargon, one of the best places for (new and potential) Windows 'converts' in the site building arena is XAMPP. The Windows version of XAMPP can in many cases literally save people months of frustration. In one case, we were told a shop spent six months tinkering before we recommended using XAMPP as a base to get started. If you can relate, don't wait - get XAMPP (Jesse Jackson-like assonance unintended).

So what is this thing called Drupal?

The next hurdle in the shift was - simply understanding Drupal. The Learning Curve aside, perhaps the biggest hurdle Drupal newcomers face is, simply wrapping one's mind around what Drupal is, how it is different, and how it is successfully and effectively deployed. There are many understandings and nuances that seem to come only with time. More than anything, the most helpful tool seems to simply be practical experience. To dive in and iterate several instances of sites, experimenting with modules, themes, installation profiles. There really is no substitute for a healthy dose of practical, hands-on experience with Drupal.

Whoa, we can do anything!

Learning curveOnce somewhat beyond the initial "I suck" curve, you'll quickly find with Drupal you can accomplish on the web nearly anything you can dream up. The next challenge is to avoid the pitfalls of - believe it or not - Drupal's vast wholesome goodness! As probably anyone who has used Drupal for any length of time will attest; there's so much goodness in Drupal, and so many cool things you can bake in, it's easy to quickly wind up with a laundry list (hundreds isn't uncommon) of modules in your site. This is a common, yet ill-advised approach. The way to avoid this is to clearly define your project before you even turn on the computer. Sound a little extreme? Trust us, it isn't. That one step (actually, probably a few steps) alone will spare you considerable consternation in a process of unending iteration. This again cannot be overstated. Our two favorite resources along this line are; The Web Style Guide, and The Design of Sites. While we're at it, our favorite two Drupal resources are; Using Drupal, and John VanDyk's Pro Drupal Development. These two Lullabot resources have proven invaluable to us. Most CMS's only allow for a very abbreviated user experience. In other words, most sites typically offer limited user interaction. Drupal on the other hand can do unbelievable things, including create rich user interaction. The Drupal Commons installation profile by Acquia clearly illustrates this fact. And because of the endless possibilities, nothing can replace a well architected site plan - from the outset. Most people - including seasoned developers in many cases - fail to comprehend the reality of Boehm's Law, which simply paraphrased states, in life, an ounce of prevention is worth a pound of cure - in software (including the Web) an ounce of prevention is worth a thousand pounds of cure - and sometimes more.

To infinity - and beyond!

Yeah, we know it's corny, but we think it fits. It is our sincere belief that the Drupal CMS is not just the best out there - but that is undoubtedly without peer, for many reasons. Drupal is ninja light, and stealthy when needed. Drupal is a chameleon, able to mimic nearly anything. Drupal is exhaustively capable. Drupal is more flexible than a yogi master. Drupal is more secure than Fort Knox. Indeed, Drupal is as close (in the web world) to all-things-to-all-people as you'll likely find. And we hope your experience with Drupal will prove as rewarding as ours, our clients', and the myriads of others who've taken advantage of, and come to appreciate the awesomeness of Drupal. If you're investigating and perhaps comparing CMS's, we hope this information will prove invaluable to you. And if you need help with your Drupaling, we're available. You'll also find the Drupal community at large extremely helpful.