Hello,
First some background: I discovered Drupal in 2006, made several failed attempts at migrating to it (partly because of Drupal, partly because of other unrelated reasons) and I'm now trying to convert from Dotclear to Wordpress to Drupal one more time (Dotclear to Worpress is because there is not Dotclear to Drupal migrating tool). I am not a coder, I am more of a usability so-called expert.
Below you will find my vision of how to improve Drupal.
First: let us call a spade a spade, especially when it may fuel motivation by giving a foreseeable goal. Drupal main competitor visibility-wise are Joomla and Wordpress. Competition is direct with Joomla, indirect but rising with Wordpress. Drupal uses a top-down approach, from CMS to “mere” blog, whilst Wordpress uses a bottom-up approach, from blog to full-fledged CMS. Drupal competes with Wordpress. Wordpress competes with Drupal.
Second: the first impression matters a lot. What is the first impression? Installation.
Now, with the objective of making it better, I'll survey my own installation of Drupal. From scratch. And I'll be blunt (well, somewhat).
First the basic install itself. It is pretty common (download, fire up your FTP server, upload, go to the install page), but still could be made easier. How? Well, the French blogware Dotclear has it: the one-minute install file (basically a server-to-server install, although you still need to open up a FTP client—I imagine it would be easy to not even have to use a FTP client, but then major security issues would arise). Geez.
IRI in today’s Drupal: none
Second, choosing your language. Drupal welcomes you with English instructions. I don't care English is the lingua franca for the internet. Take a look at Apple: they have it right with Mac OS X. OS X’s very first install screen is made up of the language names in the language (Install in English, Installer en français…). This is intuitive, this is short, this is good. One gives only one first impression and that's definitely a good one. For the sake of simplicity (no configuration file, external call…) the default installation page in every language should be built in Core, of course. I'm considering a small piece of CSS hover (no need for JavaScript here) to tell how far this language is translated in Core—so that you can choose accordingly.
Further improvement: default language is guessed from browser language
Further improvement: default language is top-level
IRI in today’s Drupal: none
Let's say that Drupal comes bundled only with English—this is fine enough for me, since English is the reference language for Drupal development. If the user wants another language, Drupal will need to install a language pack accordingly. This will require some FTP access and some technical speech. Since so far nothing can be installed (we did not even set up a database), these instructions too should be built in Core. Much like the aforementionned one-minute install, one should be able to auto-install the right package (the present way not only is cumbersome but is also ambiguous: on a Mac, similar folders are deleted, not merged—and the user should not have to know that its remote server will merge, not delete).
IRI in today’s Drupal: /install.php?profile=default&localize=true
OK, Drupal speaks in your language. Now, we can go technical. Here should be a profile-choosing page (“what do you want to do?”). I suggest nested levels of choices over one-page per choice. Why so? To keep the amount of required step down to a minimum without overcomplexifing the pages. So, a mix of nested level and multi-step. This “crossroad page” will then direct you to various profiles. Some examples (() is a radio button, [] is a checkbox):
....() default install ....() custom ........[] blog ............() single user ............() multi user, family (around 1-10) ............() multi user, farm (100+) ........[] wiki ............[] MediaWiki-like* ........[] enhanced security ........[] whatever
I suggest no more than three-level depth in this page. Less would lead to multiplying the pages, more would lead to too much complexity. This should be called "Step 1" (technically, this is step 2 or even step 3, but to for the sake of ergonomy, it should be step 1). Asteriks or links may be used for further explanations—here, “MediaWiki-like” means a bundle of revision, diff, wikitools, flexinode, talk, edit_section and table of contents modules (and probably others, too).
Then, depending on what you choose, the next page will ask you several questions. Answers will trigger (or not) the installation of various modules. This can be one module (like pathauto) or several (like WYSIWYG plus FCKEditor). I suggest a predefined number of steps so that Drupal can say "step x/y" - like step 1/4, 2/4, 3/4, 4/4), then arrange the various steps so that it fits in the framework.
IRI in today’s Drupal: none
For the sake of simplicity, let's assume now that we chose the default install.
IRI in today’s Drupal: /install.php?profile=default
Finally, some more juggling with files is required, again (duplicate /sites/default/default.settings.php as /sites/default/settings.php and give write access to it, create /sites/default/files/ and give write access to it). Once again, automate this!
IRI in today’s Drupal: /install.php?profile=default&locale=<var>xx</var>
The install works, woohoo! Oh no! More lemmings FTP juggling
Now, you are suggested to remove the write permission on /sites/default/settings.php (Drupal doesn't check for /sites/default/, althoug he asks you to). Well, automate this too (it seems to be automated-it just doesn't work on my SFTP-only server).
OK, default installation is done. Could be harder, but could be simpler too.
Of course, it is not that easy. I go to the administration panel, as invited to and there it goes again. Issues.
- HTTP request issues: Drupal can’t access some pages, I don't know why
- no update notification from Drupal.org. May be related to the previous one
- cron doesn't work (fixed with Drupal 7). So far, I'll use poormanscron
OK, this is a first draft. Your call!
Comments
_
You may wish to participate in the d7 usability efforts at http://d7ux.org.
I do
I do :)
But not much traffic on IRC. I'm reading and commenting to the issues right now.
Complete article about it
I revamped, updated and simplified the whole thing on my blog: Metaprofile — proposal for an improved Drupal default profile.