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.
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.
Drupal Feature Ratings
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
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
- Implemented in-house
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
- Self-taught
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.
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
Pros | Cons |
---|---|
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
Pros | Cons |
---|---|
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
Integrating Drupal
- 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.
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.
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