Drupal is the top Content Management System for businesses and organizations that; need interaction with existing or external systems, have complex mixtures of functions and require the ability to scale. It is also the CMS attacked most often for being hard to learn, cumbersome to deploy and difficult to develop in. I’ve used Drupal since 2003 and, trust me, all of this is true. Many large companies, NGOs and academic institutions around the world succeed with Drupal because they know the pitfalls and how to get around them by investing in planning and resources. Fail to plan, plan to fail.
Solve any problem by first defining the problem and then selecting an appropriate solution. Close to 40% of all websites use a CMS and of this 40% over 60% use WordPress, 20% use Drupal and 10% use Joomla with the remainder belonging to a flurry of packages. WordPress has the largest share because it’s a very good blogging package and widely used by individuals. If all you need is a blog, perhaps with a few enhancements, go with WordPress as I do for my own blogging. Joomla is more generic that WordPress and has a loyal following but after working on several Joomla projects I would pick Drupal since I have the training and experience to make it work.
Drupal training and deployment suffer from; the one way parking lot syndrome – people drive things in but never drive them out, community chaos that creates a fog of distraction and emotional dialogue and Drupal’s radically different infrastructure and vocabulary. It is very easy to install, add basic content and select a good looking theme for a Drupal site but at some point the inexperienced user will attempt to make a seemingly simple change and find themselves flailing in a sea of nodes, content types and module hooks. And then floundering into the drupal.org forums and moving to a new level of confusion that will not be reduced by jumping into editing the source files. Open Source projects like Drupal provide the code, but not the understanding. To make Drupal work you must invest in the resources needed to understand and manipulate its components and processes. This will pay off – remember, the only thing more expensive than doing it right is doing it wrong.
Get a book on Drupal and read it. The best one I’ve found to start is ‘Pro Drupal 7’ by Todd Tomlison and John K. Van Dyk. Drupal is up to version 8 now, but this explains the core concepts quite well. When you’ve done that start selecting the Drupal components you’ll use. Drupal is built with a framework / module architecture which means that pretty much all the functionality is provided by plug in modules most of which are created by volunteer members of the community. Some are very good, some sound very good and some are not very good at all. Before you go ahead and pick a module answer three questions. Is this project still active? Are there enough developers and are they sane and responsive? How many people use it and what are they saying. The project page on drupal.org should have all this information, if it doesn’t don’t use the module. Make sure to allow time to test out components – don’t assume you can just drop them in. Putting a toolbox of well selected, tested and stable Drupal components together is crucial as is having skills available in PHP programming, databases and server administration.
Building the foundation for a successful Drupal project will pay off with a working website capable of hooking up with your existing databases and systems. By gaining skills, selecting components carefully and making solid contacts in the community you’ll have the ability to adapt and scale to your future needs.