My name is Willy Smith, and one of the hats I wear is as webmaster for SSC (publisher of Linux Journal, among others). I've just gotten past the knee of the learning curve on using Drupal for two of our sites, Linux Gazette and A42.com. Dries asked me to write an article some time ago to share my experience.

I will start off by giving my background and basic attitudes about web site design. My own experience is very limited - I was hired by SSC in June of 2003 to do an experimental site, WorldWatch, which is now static but which ran on PHP-Nuke. Previous to that I had only done one website with a Windows program called Fusion; after that experience, I decided that I hated doing websites and played stupid if anyone asked me if I knew anything about it. I still know just enough HTML to let me do my job function, and have no desire to become an expert at it. My programming level for PHP is also rank beginner, although I am enjoying that experience and will make a major effort to become proficient at it. I have 30 years of programming experience, but most of it was writing real-time control and communication programs in assembler. I had some experience with databases, but it's from the late 1970's with mainframes. Although I've been a Linux user since 1999, I hadn't used it much on my desktop until last year. All this is to say that although I'm an experienced computer professional, most of what I'm doing is relatively new to me. I hope this will be encouraging to others who are just starting out.

It took me a month or so to get comfortable with PHP-Nuke, and I never tried to do anything fancy with it. But since I was primarily interested in content on the WorldWatch site, this didn't bother me and I did not pursue trying to make it anything more than it was "out-of-the-box". Eventually I felt frustrated by the limited functionality of this CMS. By the time I first started using Drupal, I was very excited that I would be able to do new things with it, and spent a lot of time playing around with it on a test site. When SSC asked me to take over the Linux Gazette site, which was already running, it made me very nervous because the site was already live. SSC had already spent a lot of time investigating Content Management Systems (you can read about that process in the Publisher's Blog at Linux Gazette here). But after a month (and with Dries' help), I am very happy with where we are and where we are headed.

The single most important thing I can advise you about designing a site with Drupal is that you should try to simplify the framework as much as possible. Because of its many features and flexibility, you can usually find several different ways of doing things. It pays to think about this carefully, to try on different ideas and find the best way for your purposes. The taxonomy in particular has a lot of power, but can quickly make your site difficult to manage if you make it complicated. It is easy in general to make the site complicated with Drupal, so the first temptation is perhaps to go overboard. The art is to make it simple, which is possible by thoughtful planning once you understand how it works. The most important example of this is that a great amount of care should be taken in designing the choices which a person who is submitting an article will see. Our experience is that the user will ignore too many choices, or perhaps will not understand what you are trying to do. Perhaps you have noticed that many visitors to sites are seemingly not even able to find the shift key on their keyboard, so asking them to understand taxonomy is really too much. Another serious consequence of undue complication is that the overhead for the webmaster/editor will be increased, and there will be problems later as site traffic goes up.

In the cases of both of the sites where we're running Drupal, my main goal right now is to let them run for a while and see what happens. Only then will I make more changes, even though there are already things which immediately come to mind. Drupal has a lot of tools which let you analyze what's going on with your site. So now I try to spend as much time as possible not only seeing what people are posting and how they are using the system, but also going through the statistics to see where people are coming from and what they are doing while visiting the site. I think that this should be a main consideration if you are investigating your options for a CMS. You may know what you want your site to be as far as appearance, functionality and content, but being able to analyze it and adapt it to changes which will surely be mandated to accomodate your readers and make your site popular is equally important in the long run. Drupal excels at this.

I would also recommend that you put your Drupal site up on a staging server to try it out, before you go live on the web. I spent a month just playing with it, posting articles, organizing and reorganizing taxonomy and books, and doing various other things before I felt comfortable. It was good to know that I could accidentally or on purpose delete things and make mistakes without affecting people who were visiting the site. It also gave me confidence to be able to navigate the substantial menuing system with all its "breadcrumbs". I also let some other people try it out, and they gave me useful feedback.

Drupal is an excellent system. I haven't found anything that I want to do yet that I can't functionally get done somehow with it. There may be some things which need to be polished, or some irritating minor points about the user interface, but I expect that these things will be changed over time as more people will have the same ideas and necessities. In particular, I look forward to having more functionality in how books are generated. There is a lot of potential in this module, and we hope to contribute to its development.

I will be happy to discuss these and other issues or answer questions on this forum.

Willy Smith

Comments

irwin’s picture

Why did you not feel comfortable with Drupal when you first started?

I would like to get an idea because it seems that Drupal, compared to a system like *Nuke, has a bit of a reputation for being difficult to learn. One of the articles on the "Drupal Talk" sidebar, in fact, mentioned that Drupal "is still, to a great extent, a developer's platform". Source.

With more analysis (and volunteers), we can probably get that documentation improved and make the default navigation and setup easier for everyone.

-- Irwin

Willy Smith’s picture

The first reason is the fact that I'm a "newbie" to all of this, so it's all a bit overwhelming. Just typing


<a target="_blank" href="http://www.JuanTutri.org">Juan Tutrí's Homepage</a>

would have seemed horribly complicated to me in June, let alone knowing how to embed it in a page without the CMS interpreting it as a link. I started with Drupal in October, so this is a large part of it.


But, Drupal is very complicated compared to Nuke, and the possibilities are very open. To make an analogy, giving someone Nuke for a site is like giving a child an electric train set; whereas giving someone Drupal is like giving a child a Lego set.

I don't think it's difficult to learn, I just needed to be shown how to think. In this Dries was a great help. As it says in the Linux Gazette blog, I told Dries what I wanted to do and how I thought I should do it, and he then explained one or more different (and usually better) ways to do it. They were ways that seemed non-intuitive to me but perfectly natural to Dries. Then again, he made it so he knows it.

Different people have different experiences and learn in different ways, so it's hard to generalize what the solution is to this problem. Perhaps a few tutorials would help. For example, I had a difficult time at first understanding how the books work with the taxonomy; I just couldn't see that they didn't necessarily have anything to do with taxonomy. If I had had a simple tuturial showing me that I should make a blank page as the parent for a book, and that I could make then other blank pages to serve as parents for chapters, I think I would have learned faster. For some reason I couldn't understand this from the Help entries.

e-1’s picture

One reason: there doesn't seem to be a HOWTO on how to develop a site. I've spent the past two days trying to get a semi-reasonable website put together. I know the structure I want it to follow, and I know roughly where the content is going to live, but it's difficult to understand how to create a content hierarchy, etc.


e

ryan408’s picture

I fully agree with this comment. I'm an experienced web designer and approach a new site with a hierarchy of content in mind. I've been spending the last few days trying to figure out how to organize my content in Drupal.

Not to say it doesn't exist, but I can't find documnentation anywhere on the Drupal.org site describing the concept behind a node. I also want some documentation on how URLs are constructed in Drupal. I have no idea if there's a more mnemonic way to link to content than /node/view/2.

More case studies and/or a configuration repository would be a most welcome addition to the Drupal site.

KeithDaniels’s picture

I can't answer for Willy but my observation is this:

As a general rule by the time a programmer or developer decides to start documenting or explaining how to do what they have done or use what they have created -- they no longer think about the "simple stuff" and the "starting point" from which their product derives. They are consumed with the "harder" or more "complex" aspects of their project and want to prevent the users from having to go through the work they did solving these difficult problems. Then when they do the documentation or comment their code they only explain the complicated stuff that they had problems with. Which is good for people once they get some experience but it leaves the newbie feeling that this must be really hard since they can't even understand where to start, and all the explanations they see, only discuss the complex, difficult aspects of the process.

I did not have much of a problem installing Drupal, the instructions for installation were fairly complete and fit my skill level of a "newbie Linux" user and ex "Windows Power" user. I assume this was because of lots of user feedback from frustrated users over the past few years.. (;-) .. I just started yesterday trying to customize my first Drupal site and my first problem was how do I replace the Drupal Logo with text? In the code of the default themes, that came with Drupal, it was easy to find how to change the logo -- but how to add text was not obvious and there were very few comments in the code to give me any help. This is an example of what I am talking about, the starting point and simple stuff gets left out.. I came to the site to find some more themes to download and check out for clues. Then if that doesn't work I will try reading the developer's material - though I don't consider my self a developer…

The documentation and learning curve problem is easy to solve. You have an experienced Drupal programmer and a stenographer sit down with 3 different people, having different user skill levels and help them as they start out cold, installing and customizing Drupal. The experienced Drupal programmer does not do the installation nor touch the keyboard, but instead, only answers the questions of the people who are trying to install and customize the system for the first time. The installers should be composed of: 1. An idiot - the dumber the better, 2. A power user (of Windows at least). 3. A programmer in C, or a similar language, who knows nothing about Drupal. Record all the questions and answers and then write them up in a FAQ, at least, and put comments in the code where applicable... Each one of these people will look at the problem completely differently and their previous experiences will create assumptions that lead to completely different kinds of problems, misunderstandings and approaches while attempting the installation. That wouldn't take long really..... Now would it? (;-)

Keith Daniels

escoles’s picture


The documentation and learning curve problem is easy to solve. You have an experienced Drupal programmer and a stenographer sit down with 3 different people....

Not so sure about that.

I don't think that the biggest hurdles in understanding Drupal are really technical at all -- not in the sense in which most people use the term "technical." The biggest hurdle is in terms like "taxonomy" and "thesauri".

In other words, the biggest problem is pedantry.

Now, I can say that, because I'm an unreconstructed (or at least barely reconstructed) pedant, myself.

The problem is that to make Drupal do anything really useful, you have to overcome a huge hurdle in understanding its information design and information architecture. Drupal is a very high-concept system; it's radically flexible in the ways that you can configure the information architecture, from a user's perspective, but neither the documentation nor the system itself is very helpful in guiding a site developer in making intelligent, useful information design and information architecture decisions.

So your approach is part of the way there, but only part of the way. Technical issues with installation are relatively easy to solve; explaining how the system works in ways that are comprehensible to the audience that can really use a flexible tool like Drupal is much, much harder.

What I think would be most useful is to find a way to capture commonly used configurations and make them available. That's the approach that's been tried by the Xaraya team, which has migrated toward a similar set of ideas about information architecture (though much more complex than Drupal's). I think it's telling that I can't tell you what this would entail, but I know it would include at least setting up a default taxonomy and a default user permissions matrix.

moshe weitzman’s picture

What I think would be most useful is to find a way to capture commonly used configurations and make them available. That's the approach that's been tried by the Xaraya team, which has migrated toward a similar set of ideas about information architecture (though much more complex than Drupal's). I think it's telling that I can't tell you what this would entail, but I know it would include at least setting up a default taxonomy and a default user permissions matrix.

I like this approach. It is similar to the 'case study' method. Drupal could use more detailed case studies.

Also, please start a new thread here or on drupal-devel mail list about valuable information architecture ideas present in xaraya but missing in drupal. your experience with both applications, combined with clear writing, is invaluable.

cel4145’s picture

an easy way to do this is to setup alternate installs by dumping sql builds. just make some alternate sql's available. for example, i'm working on a build for education (well, haven't done much lately and now i'm waiting for 4.4 contrib modules). it will include some contributor modules with the core, some modules turned on with permissions already set and some instructional information added in. for example, there's a user defined block already created with a link into the block admin section so that someone getting started with the site can easily add to that block without even figuring out how to create one.

once i'm done, i'll just dump the db and tar the site. plan on presenting this at a conference in may. so it would be pretty simple to maintain two or three basic setups, for example drupal configured as a community blog, in addition to the base core installation. granted, any setup will not necessarily satisfy everyone's needs, but it could sure be a head start for a lot of people based on some of the support questions i've seen.

dries’s picture

We could create projects for each such profile and maintain them in CVS.

cel4145’s picture

That sounds like a good idea. Once I get the one I have for education updated for 4.4 (which won't be until later in April), I'll ask you about a place in CVS for it.

adrianrf@drupal.org’s picture

when a request for a patch to migrate earlier releases to a new release gets the answer:
"We've not been providing patches in the past but I could create one for you. Of course, if you're familiar with CVS, patch or diff you could easily create one yourself. "

the gulf in understanding couldn't be clearer.

is the current Drupal userbase radically different than most? I don't know. if so, Dries' working assumption that the questioner recognizes what CVS, patch or diff are -- let alone considers using them as "easy" -- may make sense. if so, it indeed supports an assertion that "Drupal is still, to a great extent, a developer's platform."

if Drupal's user profile is closer to the norm, reality is that the vast majority of people who could potentially benefit from Drupal's capabilities are highly unlikely to consider chasing daily builds and dealing with their aftermaths -- just as there's no way in heck they'll build their own diffs.

Adrian Russell-Falla

dries’s picture

I was just helping out a developer not familiar with CVS, or with some of CVS's functionality. While doing so I linked to pages explaining what CVS, diff and patch are. Really, this has nothing to do with Drupal being a developer's platform. Quite the opposite.

jsj987’s picture

Hi,

I just had my webmaster install drupal for my 63 year old mother to use and post articles about her experience with alternative medicines.

I used drupal on a recommendation from my webmaster but now that I read about your experience of "spent a month just playing with it" I'm wondering if blogger may be a more simplistic approach.

Do you feel you could have spent much less time learning it if you weren't looking for such a robust solution, or is the learning curve steep for all levels of use?

Jeff

small business ideas

kbiglione’s picture

I think Drupal is definitely overkill for your 63 year old mother, unless she plans on running a community for others who are also looking to share their experience with alternative medicines.

You might look into a more focused, strictly blog oriented tool like WordPress (also PHP, and very easy to setup and use - plus it generates clean xHTML so it's extremely easy to customize the interface via CSS).

voipfc’s picture

Do not understimate 63 year old mothers.

Taran’s picture

My mother as well.

mousse-man’s picture

But I got Drupal running on my website with content in something like week.

The biggest building block was getting images to work, but I suppose that this is closely tied to the fact that something in the PHP script screws up and you need the permission 0770 on the images dir because the drupal PHP script puts in some backticks where they don't belong.

What I'd like to test is some more advanced features like a HTML editor that I have seen in the projects page.

And I also took Drupal because it's one of the CMS that can use PostgreSQL.

gatezone’s picture

I spent about a month with postnuke and then some other nonprofit techs told me about Drupal and in the last few days have created three sites. I find it much easier to work with and contrary to what others are saying *less* techy and more intuitive in most areas than other systems. So far the css implementation makes a lot more sense to me than postnuke themes.

But... the documentation for the modules is a bit sparse and after experiencing the phpbb community it seems like Drupal has very few users who have enough experience to provide assistance to the newbies. Having said that I still think the structure of the site (here) and the clarity of the system is worth getting stuck... but if I can't get Image and Subscription to work I'm up the creek ;-). (I've installed successful Gallery sites but still can't get Image module to work correctly. Mousse-man please tell me more if you're on a Linux server)

Oh, yea, I think I saw one of the developers mentioning that he was trying to improve the forums area and I agree this would help. I haven't played around with the forums area too much but an easier to scan listing option would be great if it isn't hidden in there somewhwere already. By listing I mean a single line (height) per row. The flatten view doesn't seem to simplify the view quite enough for me.

Great system so far...

Taran’s picture

As a new user of Drupal (just did the FSC site), I wanted to get my feet good and wet before I started adding to Willy's comments.

After all, it's mainly because of Willy that I chose Drupal. I was looking for a good CMS for eAsylum.net, and later KnowProSE.com - and had actually been reviewing CMS's.

Drupal's real strength came out in the review. It has the most sensible documentation I could find, with comprehensive Q&A on this site. But I was cramped on time, yet trying to be fair. Clean links are a big deal to me. So is the licensing. So, in a pinch, I bet on Drupal after Willy gave me a chance to poke around on A42.com. I then made a mock-up on eAsylum.net, which was very worthwhile. I learned a lot.

The taxonomy structure makes sense, but I'd never used the word like that before. So I had to learn a new use for the word, which took a few minutes. 'Add vocabulary' and 'add term' aren't very friendly to the beginner. Perhaps branch and sub-branch are better? I don't know. I'm past it.

In all, I think Drupal is much easier to install/configure than comparable CMS's, and the documentation on this site is very good. I actually was planning to add to it, but at this time I have nothing to add - it's a strong community. But it *is* developer oriented, and I say that as a software developer with over 16 years of experience. I understand it as well as I do because I read tech-ese very easily.

Could it be made friendlier? Probably. But made friendlier, would it be as useful? Probably not.

Something I would suggest is having a way for Drupal sites to allow people to see which modules are being used. This helps people who are looking at Drupal sites understand how they get things done in certain ways. I beat my head with a stick trying to do taxonomy_menu without having the right module, but I subjected myself to poking around in the downloads section and finding it. Wouldn't it be nice if I hadn't had to do that? I think so.

Drupal's powerful, flexible, and pretty easy once you get past the language specific to this CMS. But it can be made more friendly, and maybe we can all help with that. I will where I can.

onmountain’s picture

Hi. Very interesting to read this after coming on this forum over a month ago and deciding to try Mambo first. I have a Mambo site up and running. but still feel like Drupal may offer me more long term power and expandability. HOWEVER, I can tell you that Mambo has about a zillion times more of a newbie-friendly feel when it installs (other than one permission snag with the configuration file), and I can tell you 2 reasons why:
(1) The default (peeklime) template used in Mambo looks like a website right after install. In fact, before you even log in you can see the site as an unregistered (public) user, see a logo, see sample content, see menus, etc. Drupal just loads into some "blank" screen with no samples, no color - you really feel like it hasn't loaded up - really.
(2) The admin menus in Mambo are along teh top, and it gives you a feel like you are in an admin part of the program - and you can see the menus and drop downs all the time you are moving and working on content, menus, configuartions, users, etc. Drupals side loaded admin menus are very powerful, but they tend to get lost when you are working on a screen and when you change screens. I still have a hard time knowing what parts of what I see are "user" and what are "admin".

Recommendations (I am full of it aren't I) :-)
Deliver soem sample data and a prettier template as part of the default install of Drupal. Should not be too hard to do. I suggest that newbie critical documentation and important links, etc (like to this fantastic forum) be part of the sample content!!!!! Why waste the opportinuty? Doesn't have to be complete - could even be intro paragraph with a hyperlink to actual documentation on this site...

Keep up the good work to all those involved in this. It does appear to be faster code than Mambo and probably more advanced. You people are incredible!

brakai295’s picture

Yeah I really enjoyed this thread too. Quite a good topic to discuss! :-)

Webdesign Melbourne Australia
Work Travel Australien (Community with Drupal)
Reiseblog Community - Sprachreisen, Auslandspraktikum, Arbeiten & Reisen

sepeck’s picture

This thread is two years old and several versions ago. Please start a new thread.

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide