Drupal: Climb the Learning Cliff - It's Worth It
Updated July 17, 2015

Drupal: Climb the Learning Cliff - It's Worth It

Michael Sypes | TrustRadius Reviewer
Score 9 out of 10
Vetted Review
Verified User

Software Version

7

Modules Used

  • core
  • views
  • miscellaneous popular modules

Overall Satisfaction with Drupal

I have used Drupal in a variety of contexts, including public-facing information and commercial sites, and internal intranets. Drupal provides an excellent platform for content managers to create and edit information on these sites. I have also implemented Drupal solutions for a community word game site, a school fundraising organization, and as a front-end for more complex data collection and analysis applications. It's an incredibly robust and extensible system, so it can be tweaked and modified to fulfill a wide variety of specific needs.
  • Excellent content management system, with a lot of room for customizing, especially due to the wealth of contributed modules. Extensibility is also enhanced by a very good API for creating your own modules
  • Completely open-source, so you're only paying for the time needed to develop and maintain your site. No ongoing costs for licenses, etc.
  • Fantastic open-source community, with experts all over the world sharing their knowledge. If you have a problem, someone out there can help you with it.
  • Security. Another advantage of the strong community is ongoing maintenance and improvements of the software, so it's easy to keep your system up-to-date and secure.
  • VERY steep learning curve for both developers and designers, half jokingly referred to as a learning cliff. If you're going to build something, you need to do a lot of planning and research to ensure that you're following best practices.
  • Difficult to set up a system making it easy for non-technical end users to enter complexly styled content. If the content managers are responsible for layout of individual pieces of content, there is an additional steep learning curve. Alternatively, a reasonable amount of training is required to ensure that content managers know how to use the system.
  • Written documentation for many modules, including some of the most commonly used ones, is often piss-poor or completely lacking. Some UI aspects can seem completely arcane as a result, adding to the difficulties of learning how to use the system.
  • Quick ramp-up of multiple sites based on a common core, improving efficiency in management of these sites
  • Extensibility/Customizability improved user interface of internal intranet, as another enhancer of employee efficiency for disseminating information across the organization.
  • Saved money on licensing fees and need for outside maintenance, as we were able to move all development and maintenance in-house.
  • Similarly, because Drupal allowed moving development and maintenance in-house, we saved turn-around time on updates, changes, and enhancements.
  • WordPress,Symfony,Laravel,PHP
Drupal is head-and-shoulders above WordPress in terms of extensibility and community support, in great part because it is completely open-source. I would recommend it in almost every case over WordPress. (WP is only better if you already know that system well, and your end users are going to struggle too much with Drupal's complexity and interface.)
Symfony, Laravel, and other frameworks are better if you need to implement a lot of complex business logic every time someone enters or alters content. The advantages of having Drupal's wealth of contributed modules at your disposal will likely be outweighed by the difficulties associated with shoehorning Drupal's defined content structures into such a custom workflow.
If you're looking for an incredibly extensible system for a few or many users to enter well-defined pieces of content for dissemination, or a basic eCommerce site, Drupal is certainly fit the bill.
Raw PHP is only appropriate these days for very simple projects. If you're building anything complex, use some sort of system; it will ease maintenance, portability and sanity for your future developers.
I am a very big fan of this system and would generally recommend it over any other similar CMS if that is the appropriate category of tool needed to reach your goals. Because it is so flexible, it can be used effectively not only for basic content presentation, but for more complex tracking and collation of data. Drupal is particularly effective for situations where many people are entering small bits of easily defined material that are being combined into lists and other such collations.
Although it is highly extensible and has been labelled by some as a framework, Drupal is still, at its heart a CMS, and as such, falls short in situations where complex business logic needs to be implemented whenever content is created or modified. It is usable in those situations, but you're better off using a true framework in those cases.
If you're dealing with very non-technical people who may need to have extensive control over layout without a steep learning curve, Drupal may be overkill.

Drupal Feature Ratings

WYSIWYG editor
7
Code quality / cleanliness
8
Admin section
9
Page templates
8
Library of website themes
Not Rated
Mobile optimization / responsive design
9
Publishing workflow
5
Form generator
10
Content taxonomy
9
SEO support
8
Bulk management
5
Availability / breadth of extensions
10
Community / comment management
9
API
9
Internationalization / multi-language
7
Role-based user permissions
10

Using Drupal

10 - Estimate includes IT development and content managers in total. All employees "use" Drupal in the sense that they consume content on our intranet application. Content editors include Human Resources personnel, Marketing, and some in general management
2 - Dedicated skilled PHP developers are generally required to support Drupal. This is a complex system, and requires specialized experience to develop and maintain it properly. The only exception would be if you just need routine updates. With some simple training, this can be handled by junior-level personnel. Front-end development with CSS and Javascript also needs some experience on dealing with Drupal specifics, but less so than back-end development.
  • Dissemination of critical information company-wide, such as contact information for employees, benefits providers, upcoming events, and other such news items.
  • Sharing and review of information among group members.
  • Interface for other, external systems from a common jump-off point.
  • Community word game site, where people post responses to a prompt and then vote on their favorites. (Not in my current job)
  • Small scale eCommerce, selling books and other tangible goods, or subscriptions to access digital content. (Not in my current job)
  • Collection and tracking of donations for a school fund-raising site. (Not in my current job)
  • Replace existing WordPress brochure site.
  • Replace an existing WordPress site used by our clients (job-seekers) to create resumes, access job-training materials, and search for positions.
  • Update and enhance our intranet to provide valuable information to our employees
I have not found a better solution to common CMS goals than Drupal. Not only am I actively pressuring a drive to use Drupal more (and WordPress less), I would likely look for another position if our use of Drupal were not to increase. Having long overcome the initial learning curve, this is an incredibly cost-effective method to develop websites necessary to accomplish a variety of business goals.

Evaluating Drupal and Competitors

Yes - In the past I have replaced existing systems in raw PHP and ColdFusion with Drupal. The desire to replace these systems was due to needs to bring development and maintenance in-house, so as to reduce costs. Movement to an established stable system has also been an advantage for handling routine maintenance and updates, keeping the overall code base update with the latest standards.
  • Price
  • Product Features
  • Product Usability
  • Product Reputation
  • Prior Experience with the Product
FTR, you don't "purchase" Drupal. It's a completely free, open-source system. You only pay for the development time, not the product itself. Having had extensive experience with this system, development time is greatly reduced versus other systems that would require ramp-up time to gain the necessary familiarity. So, time and money were the key factors, and since it's been said that time IS money, that's really one factor. Knowing how well this tool can be used and how far it can be pushed makes it a "go-to" solution in most cases.
At this point in my career, I'd be unlikely to choose another solution if a CMS were the right tool to use for a given project. In the time it would take to become equally familiar with an alternative, such as WordPress, I could produce as good a working implementation in Drupal. I am happy in the methods I have used before choosing whether to go with Drupal versus a more general framework, such as Laravel or Symfony.

Drupal Implementation

Plan ahead as much you can. You really need to know how to build what you want with the modules available to you, or that you might need to code yourself, in order to make the best use of Drupal. I recommend you analyze the most technically difficult workflows and other aspects of your implementation, and try building some test versions of those first. Get feedback from stakeholders early and often, because you can easily find yourself in a situation where your implementation does 90% of what you want, but, due to something you didn't plan for, foresee, or know about, there's no feasible way to get past the last 10%.
Change management was a small part of the implementation and was well-handled - Depending on how you handle both change management and your Drupal implementation, this can range from easy to difficult. If content must be reviewed in a test environment, you want to make sure you take advantage of modules such as features and deploy, and make sure that change management systems are aware of the mechanisms needed to move code and database changes among environments.
  • Tracking configuration changes made through the UI and stored in the database during development, so that they could be duplicated in production.
  • For all changes, not just initial implementation, making sure that nontechnical stakeholders are aware of how the system will work for them and how best to use it.
  • General knowledge of any new modules being used, so that developers are using the right ones in the right way.

Drupal Training

The only paid-for training I took advantage of were some lynda.com tutorials at the very beginning of my introduction to Drupal. They were good, but didn't go beyond the most basic concepts. (This was several years ago, and there may very well be more advanced tutorials available now.) There are also scattered, free, podcasts and videos tutorials across the web, produced independently by members of the Drupal community.
I started with some books (I recall one being from O'Reilly), and online documentation.
Drupal is a very difficult system to learn, no two bones about it. I don't know of any dedicated training centers/courses, although there are purveyors of video tutorials, which have a good reputations.
It is very helpful to be involved with the community to ease the learning curve.

Drupal Support

As noted earlier, the support of the community can be rather variable, with some modules attracting more attraction and action in their issue queues, but overall, the development community for Drupal is second to none. It probably the single greatest aspect of being involved in this open-source project.
ProsCons
Quick Resolution
Good followup
Knowledgeable team
Problems get solved
No escalation required
Immediate help available
Support doesn't seem to care
No - One of the strongest selling points of using Drupal as a developer is the community. There is no "dedicated vendor." Support can be variable depending on the individual problem and module(s) involved, but if you are generally active in the community yourself, you can usually find help rather quickly. I have never needed to search for professional support to solve a problem on a project.
Yes - I have reported several bugs in modules over the years. I have also helped resolve issues in them as my knowledge has increased. With few exceptions, bug reports are taken seriously, discussed among members of the community and resolved satisfactorily. Remember, however, that this is open-source software, so it's best not to take the stance that you are a customer of a vendor of the software, but rather a member of a community driven to improve the software.
Multiple times. I have gotten support from many other users of Drupal modules, ranging from clearing up misunderstandings of how to best use items in the user interface to correcting code ambiguities, thus improving the software overall.

Using Drupal

Once you've learned how to use it Drupal is a very logically consistent framework for building and maintaining a robust website. The trick is getting to the point where your understanding of the system is full and correct so that you can use it properly and take advantage of all it offers.
ProsCons
Like to use
Well integrated
Feel confident using
Difficult to use
Requires technical support
Slow to learn
Cumbersome
Lots to learn
  • Extending content types with contributed modules to store and retrieve specific type of data, such as addresses, emails, product information, or other custom details.
  • Displaying collections of data. The Views module is a tour de force not present in any other system to my knowledge. While not necessarily easy to learn at first, its power and elegance quickly make it indispensable for building a good site.
  • Making modifications on-the-fly. Additions of new functionality and even updates to the core system can often be done with little to no downtime. need to add a new content type and a page displaying a list based on those entries? No problem! The work needed to do this can be done on a live system with no interruptions to active users.
  • Setting up an easy-to-use interface for non-tech types can be a challenge. Basic content entry, while done with straightforward web forms, can be a bit daunting if editors are responsible for full layout control.
  • Initial learning curve. If you're building your first site, this is going to be rough. The "Drupal way" is not always the most obvious to newcomers, and it's easy to go down wrong paths in effort to get something to work without understanding how the system works.
  • Migrating changes and additions through a typical development->staging->production flow can be difficult. Because everything is in the database, both content and configuration, it takes some forethought, and/or a dedicated hosting provider, such as Acquia or Pantheon, to deal with content changes, if there's an expectation that everything go through this typical process.
Yes - Many themes, which are individual projects, just as are modules, are built on "mobile-first" philosophies. The theme-creation tools I've used (Omega & Zen) make it easy to build themes that way as well. Provided you have a front-end developer who knows how to properly construct a theme to take advantage of, and implement, and mobile-ready interface, you're good to go.

Drupal Reliability

Drupal is well known to be scalable, although it requires solid knowledge of MySQL best practices, caching mechanisms, and other server-level best practices. I have never personally dealt with an especially large site, so I can speak well to the issues associated with Drupal scaling.
I have had few issues with keeping a Drupal system up and running. When there have been issues, they've been errors in how I went about implementing a change.
Drupal page loads can be slow, as a great many database calls may be required to generate a page. It is highly recommended to use caching systems, both built-in and external to lessen such database loads and improve performance. I haven't had any problems with behind-the-scenes integrations with external systems.

Integrating Drupal

I have never had a problem integrating Drupal with an external system. At that point, you're dealing with your own custom code, and the Drupal-specific wrappers needed for those are straightforward.
Some Javascript integrations can be difficult to manage based on the way that Drupal handles Javascript. (Like the old Camel commercials said, "Experience is the best teacher.")
  • Canvas Learning Management System - using a RESTful API
  • Proprietary MSSQL/ASP.Net database application - using PHP's built-in SOAP client
  • External PayPal payment system - custom code based on PayPal's API
  • Authorize.net and Stripe payment gateways - contributed Drupal modules
Integrations ranged from butt simple (payment gateways) to moderately difficult (PayPal). PayPal integration was difficult primarily due to their difficult to read documentation, and not a reflection of Drupal. Canvas had great documentation, and communicating with its API wasn't hard. For an internal application, I had direct communication with the MSSQL/ASP.Net developer, so it was easy to handle those data transfers as well.
  • I don't have any planned integrations with outside systems at this time
  • File import/export
  • Single Signon
  • API (e.g. SOAP or REST)
  • Javascript widgets
File import and export are easily handled with a variety of contributed modules, dependent on your use case.
Our current implementation uses an LDAP Single Signon system, but I didn't implement it.
I've uses both REST & SOAP based communication with external systems with great success.
Some Javascript widgets are available with contributed wrapper modules. Others will require custom implementations.
Be aware of how Drupal consumes data for display when it comes time to bring information in from an external source. Also understand how it normally expects to store input data in its own database so that you can properly parse it for export.
If you're doing complex Javascript integrations, read a lot of the available online documentation, and be prepared to make mistakes and learn from them.

Upgrading Drupal

Yes - Upgrades of contributed modules and even core are generally smooth and require little, if any, downtime. The few occasions that have required any significant downtime (an hour or so) involved multiple structural changes and updates/additions to content that had to be done manually due to inadequacies in our processes.
  • Enhanced stability
  • Security updates
  • Additional functionality added
  • Keeping up with latest coding standards
  • Easier maintenance mechanisms
  • Additional extensions to functionality