The best things about Drupal are its extensibility and plug-ability. You can get something going quite fast that’s feasible for clients to see.
It has a very good authentication/authorization system. For a few years, the application had a dedicated security team who took care of reported security issues with the Drupal core and even contributed modules. The vast user base is a big bonus. You have plenty people collaborating on many modules/plugins, so if you have issues, someone will step in quite fast to help you.
A lot of functionality has been added to the core since Drupal Version 6 allows for people who don’t have a strong technical background to build complex displays of data and pages just by using a WYSIWYG editor.
Improvements to My Organization:
We have rebuilt a few websites in Drupal. Due to the way Drupal is built, it usually allows us to have new functionality ready in a sprint, where before it could take several months to get into production.
Room for Improvement:
The learning curve is the thing that scares most people away from using Drupal. With Drupal Version 8, it has taken a more standardized way by teaming up with the Symfony framework.
This, however, is a double-edged sword. It takes you a step further away from the typical front-end developers that had found their gem in Drupal Versions 6 and 7. By its procedural nature, they were able to build semi-complex websites without any real programming and object oriented programming knowledge.
Everything below Drupal 8 was aimed at being a procedural application where you can make changes by using hooks they provide in their code (a small amount were Object Oriented, but most people would never touch this). This allows for an easy way to modify existing pages for the non-programmers who know how to write scripts a little. But these hooks are very specific to Drupal itself (hence the steep learning curve) and aren’t very intuitive if you look at PHP frameworks/applications as a whole. The documentation on how to do things as a complete novice is only subpar in both Drupal 7 & 8. By now there are plenty how-to tutorials on how to do things in Drupal 7 luckily.
With Drupal 8 they decided to use Symphony2 as the base framework for the system. This allows for best practices in that framework to be used and allow the vast community of symphony2 programmers to make a switch to Drupal since it leans closer to home than the procedural approach from the previous version. Almost everything is now Object Oriented and the amount of hooks (the old procedural approach) has been pushed back to a minimum. This makes it more difficult for the previously mentioned non-programmers. They are now looking at a huge time-investment to learn OO Programming to get started in Drupal 8. I believe this is the reason why Drupal 8 is making such a slow start compared to Drupal 6 & 7. It’s a good product but they made it so much harder for the people who can write basic PHP scripts.
The main area of improvement would be better/more documentation and tutorials on how to do things in Drupal 8 at this moment. It’s a leap of faith for the non-programmers out there and some of them just completely thrown off by it. This is what incites projects like https://backdropcms.org/ where they fork Drupal 7 to keep it going after it reaches EOL.
Use of Solution:
I’ve been a Drupal developer for eight years. Drupal Version 6 is what I used when I first started with Drupal development. For legacy reasons, I still actively develop some applications in this version. I have used Drupal Version 7 for five years and it is still the most used to date. I have used Drupal Version 8 only for a year, but for nothing overly complex yet.
I haven’t had any real stability issues.
When we built an application reaching 200k unique hits, we were suffering from severe slowness. We had to change our approach to caching and the use of a load-balanced setup.
We made a load-balanced setup consisting of four nodes and added a Varnish and Memcache dedicated instance per node.
This allowed us to have a response time of less than a second, even with 200k unique hits per hour.
As mentioned before, the real strength of Drupal is the vast community who the product really relies on.
You will have to learn most things yourself, but if you have any questions, most of the community members are willing to help you with your problems.
We have used many different systems before, ranging from TYPO3, Umbraco, and even a custom CMS. The reasons to change to Drupal were:
- Ease of deployment
- One-sprint releases
- Out-of-the-box support for a good load-balanced solution
- No stale cache problems
The basic setup of Drupal is easy and straightforward. The learning curve to make complex changes or modules is quite steep in Drupal. This learning curve is even steeper in Drupal Version 8 than it was in Drupal Versions 6 and 7.
They use a specific set of hooks to process your code in the application that takes some time to get used to.
Cost and Licensing Advice:
The product itself is free and open source, as well as the contributed modules available on the main website. You have a lot of possibility at hand, free of charge.
Other Solutions Considered:
We tried a few alternatives, such as Umbraco, TYPO3, and WordPress.
While the learning curve is steep and may seem scary, if you invest time in it, it is well worth it.
It may be a good idea to invest in training and/or literature about development in Drupal. It will teach your best practices and will shorten the learning curve.
I think they are on the right track though. They listen to the community about a lot of things and they try to improve the application itself and the modules by giving coding and security feedback/guidelines.
Drupal Version 7 is mature and will not change. Out-of-the-box, it’s still incomplete as a full-blown CMS.
There is no easy way of building structured pages and a general how-to flow.
All these features have been made available by community-contributed modules afterwards. This makes it a great product, but you depend on a third party’s time and money.
Luckily, they have taken feedback from this version and funneled it in the next version.
I haven’t done enough large-scale projects in Drupal Version 8.
So far, it’s a great product, but the configuration management makes it difficult to work on a single project with multiple developers.
Disclosure: I am a real user, and this review is based on my own experience and opinions.