Top 10 mistakes made by Drupal newcomers
I thought it to be a good idea to sum up my vision of the ten biggest mistakes made by people new to Drupal. I encountered all these issues on several occasions, and have seen them pass by, in support threads, and so on. But that does not mean that you will run into them, still I think they are very recognisable for many amongst us. Many are not even specific to Drupal.
I’ve collected the notes and solutions from several mails and conversations, selected the ones I thought can do most harm and ordered them by overall weight:
- Blindly trusting the description on a module page. Many people write a quote, RFC, etceteras without testing the modules in several environments, and even testing them all together. Module developers are not marketing guru’s or communication experts. They make a module for their own needs. My rule of thumb: a module I don’t know (yet) will cost me just as much time to develop from scratch, as I will cost me to get used to, to implement it, and to fit into my needs.
- Going for an unstable module, or unstable core. Eventhough developers told you that a ‘release is around the corner’ or that ‘the current head is really stable’: if you need proven technology, use proven technology. A backport of some feature is often far less work then keeping up with all the progress, and dealing with all the uncertainty. Developers might think something is stable, but that is only because they are familiar with their work. A pilot will tell you that flying a plane is dead-easy. You know better. Or should.
- Foobar inc. has a Drupal site, we need almost the same, Drupal is ready to let us build such a site. Off course not. If someone else did it, that does not mean You+Drupal+SomeDevelopment can do it too! Without knowing all the ins and outs of that foobar inc. project, consider your project as “needing to re-invent all the wheels”, consider it like you would when developing something that has never been done yet.
- Assuming that a module fullfills your exact needs Out Of The Box. Even if you tried the module, your actual case might not be solved with the module. Changing something is often far from the trivial task you thought it to be.
- Assuming contribs don’t come with extras. Many contribs have nice features and extras, or dependencies. Often that is stuff you don’t need or want. The larger the module, the bigger the chance it will not be what you want it to be out of the box. I have seen developers loose many valuable hours on removing stuff. Don’t just look at what you need, also look at what you don’t need.
- Assuming a bug will be fixed because it is reported. Contributors are people. Just like you. If they don’t have an itch to fix a bug, it won’t be fixed.
- Theming is simply ‘changing a few thingies to alter the look’. Theming is a complete development track. Even simply changing a few colors in an existing theme, if done right, can prove to become an endless project. My rule of thumb: I count two hours theming for every three hours spent on module and site development. And that is only possible because I know my way around in the themes and in CSS.
- Translating is easy. For every word you know you have to translate, there are ten, twenty you did not think of. Translating an average site, when using contributed, almost finished PO files, will cost you days, if not more, and certainly not hours.
- Knowing how to make a module means its nearly done. You will, so says Murphy, encouter things you never expected. The fact Drupal development is not very hard, the fact Drupals APIs are well documented, does not mean that the development of your specific ideas or needs are easy.
- Mambo/Joomla!/RubyonRails/Any other platform CMS is not good because of Foo, Drupal has a good solution for Foo. Drupal is better for me. Sure, probably right. But does that mean that —in contrary to that other system— Drupal has Bar done right? you probably did not know about Bar because, where you come from, Bar was never an issue, in Drupal it may very well be your killer issue.
The fact you did not read anything about these issues in Drupals handbooks does not mean Drupal is perfect. A perfect system is just that: perfect. It would therefore require no more development (it’s perfect, remember?). Wherever you see developers, you know you are dealing with a “thing” that needs improvement, a thing that is not perfect.
Did I miss any? did you run into the same, but had other solutions, or variations on a problem?

Seeing nice trees doesn’t
Seeing nice trees doesn’t mean there’s a good forest around.
[Great piece, Bèr - this is a derivative of your point #3, and it’s closely related to a number of the others.]
The lay of the land: along our entire development cycle to date (especially at the beginning), we often looked at several of the modules individually and got impressed at their functionalities - rightly so; some of those are absolutely amazing. So we get excited about the possibilities. Then we continue to develop and experiment with other modules, plug them in and even if we start to see that some of them require a bit of integration work to make them play nice, the possibilities are still exciting.
So now we’ve got a nice big bunch of modules and functionalities (aka nice trees), some of which have been integrated to work together, and we’re still impressed at all the possibilities that are there and working. Surely we’re nearly there after so many months of work!
The problem: we still have to:
a) adjust the functionality of some of the modules to fit our specific needs
b) make sense of which module controls which aspect of the site (not always intuitive), and
c) built content management processes for a high-volume, multi-branded, multilingual, diversified content base (a CMS is designed to help CM, but CM still needs to be defined internally and formalized to be done effectively)
d) train content staff on the whole ordeal (i.e. in practical, non-technical jargon), and help them to get to know the system intimately
The point: it’s easy to look at a Drupal installation that features a ton of great modules, see how well they function in the tool, get excited about “how much stuff we can do”, and thereby assume “we’re nearly there”. Without purposeful module tweaking, CM process development & integration, and proper staff training, we don’t have a functioning site (aka a good forest), and these last parts of the project can take a lot of time in addition to the initial installation and development.
Indeed, this post is another
Indeed, this post is another shot at the Ninety-ninety rule.
You may think all work is almost done by ‘the community’, only to find out that ‘the community’ did only 10% of the work for you.
I call this the marketing Ninety-ninety rule: they let you think 90% is covered by their product and that you need to add only 10%. In the end you find out that its 90% of your effort that keeps the site running.
Quite helpful, but a little
Quite helpful, but a little heavy on the jargon if you are really preaching to newcomers. Please consider some tooltip descriptions and acronym tags for words like backport, RFC, CSS, PO, Foo, Bar…
As you say in #1, module developers are not communication experts. ;-)
It is aimed at new
It is aimed at new consultants. People who want to start developing with Drupal.
I expect they know what an RFC is. And what CSS is about. And most probably they have seen Foo and Bar pass by several times.
The very topmost #1 problems made by newcomers to Drupal is that they expect Drupal to be a MovableType like system.
Drupal is a Developers platform above all.
People who have no clue what CSS is should not even consider Drupal.
God you’re obnoxious, Ber.
God you’re obnoxious, Ber.
Bèr, This post is
Bèr,
This post is excellent! Was this on drupal.org, and if not, it should be… I already know that I will be quoting (often) from here in the future. Many thanks for expressing this so clearly.
Digg here, if you like it.
Digg here, if you like it.