Check List for Upgrading from Drupal 5 to Drupal 6

Includes Upgrading Drupal Modules, Themes, and Site

I am a fan of check lists. They help simplify and improve the effectiveness of repetitive processes over time. The following is a recent check list I shared with a client as a summary of the process used to upgrade from Drupal 5 to Drupal 6. Please feel free to use it and add your own notes.

Read more

Visitor Question: B2B Blogging on Your Company Site or Hosted Elsewhere

A friend just emailed me the following question:

As a Business to Business Company is it better to have your company blog hosted on the company website or should it be more indirect and hosted on wordpress or something like that.  I am getting conflicting answers from my people and was wondering if you had any advice.

The following is my response back.  Hope this helps you as well.

In answer to your question about whether a B2B company should have their blog hosted on their website or on something external I’d look at the importance of the following:

  1. Branding
  2. Maintaining the technology
  3. Lock-in
  4. Reasons to not be on your main company site

Branding

To me, branding is the most important.  If your blog is a key part of your communications strategy then you should have full control over all the elements that show up on the blog:

This is not to say you can’t use a service hosted off your current servers.  Just that the logo, design, content, domain, comments system, auto-emails, and even functionality should all reflect your brand.  I recommend the blog be on your company’s main domain.  If it must be hosted somewhere else, then a sub domain can work.  The key is that you do not dilute your brand across multiple domains. 

Additionally there should be no third-party content that could show up on your blog without your direct control, such as advertising automatically shown by the blog network you may be hosted on.

Maintaining the technology

Most companies benefit from outsourcing hosting and web server technology.  Unless you have full time staff ready and able to manage a blogging system in-house, then you will want to find a trusted service provider.  In the long run, it costs so much less.  Just make sure they have the resources and track record to keep things up and running.

Lock-in

Whether the system is something you host or something a provider hosts for you, make sure the chosen system allows you to easily get your content and data output and migrated at any time.  You want t avoid any type of lock-in whether by vendor, system, or data storage.  The good news is, most modern systems have a good ape for this.  Systems like Word press or Drupal are open source, so this is even better in that if you had to you could hire other programmers to work on the system directly.  Both (especially Wordpress) have hosted services and you could run them on your own site.

Reasons to not be on your main company site

There are some reasons to blog or communicate on places other than your company website.  The main reasons for opening up a hosted Word press account, or blogger, or a company my space page, ECT, are to increase exposure to your target audience.  In other words, you will quickly reach more people on pre-established networks, especially if the network is a typical place where your target audience gathers.  However, posts on these networks should be supplemental or in addition to your main branded site.   I would recommend using these communication channels sparingly and remember that your message may be shown with and surrounded by a bunch of stuff that you do not want linked with your brand.

Technical Issues which Pop Up in the New Year

Nice post on Smashing Magazine reminding us not to forget the small stuff in the new year: http://www.smashingmagazine.com/2010/01/23/dont-forget-the-small-stuff-this-year/ .  For example, did you change the copyright date on all your clients’ sites?

Here are two interesting client issues I had in after the New Year.

Read more

Recent Project: House Democratic Caucus New Website

While contracting for the Tree House Agency last fall, I am very happy to have architected, project managed, and lead the development of the New House Democratic Website (http://dems.gov)

From: http://www.dems.gov/press/house-democratic-caucus-launches-new-website

The site features what Democrats are saying each day, by issue and about major legislation. For the first time, visitors will be able to easily find quotes from Members on the topics and legislation they care about most. The site also features major legislation passed by Democrats and summaries of upcoming bills. In addition, the public can find House Democrats’ official websites, YouTube channels, and Facebook pages using an interactive directory.

The new site allows the caucus to:

  1. Aggregate content from congressional members (video, text, feeds, and other forms of media)

  2. Share content with the public and reporters in a way that it easy to navigate

  3. Provide multiple views for visitors to browse and search content by facets of interest

Of course we built it in Drupal for the public facing website because of its ability to present content to visitors in a variety of ways; with all the social networking tools of today’s websites and Drupal on the administrative end was the clear choice when it came to meeting the administrative and security needs of the Caucus.

Dems.gov

Knowledge management better than procedure manuals and rule books

After reading the book version of this article, Big Macs vs. The Naked Chef by Joel Spolsky I wrote down a few thoughts on the difference between knowledge management and creating a procedures/rules book.  

I often examine processes to improve productivity. On my teams I push for documenting solutions to record and share with other team members. However, it’s important to understand that documenting process and procedure alone does not equal the spread of knowledge or an increase in expertise within your team or organization.

As any phone call to Dell tech support will show you, the act of following a tech manual step by step will usually not get your computer fixed. Procedures are nothing without very smart and experienced people working for you to find a solution. It’s also the very smart and experienced who don’t really use a procedures manual.

As Joel Spolsky writes in his “Big Macs vs. The Naked Chef” post:

  1. Some things need talent to do really well.

  2. It’s hard to scale talent.

  3. One way people try to scale talent is by having the talent create rules for the untalented to follow.

  4. The quality of the resulting product is very low.

So what do we use in our teams and organizations instead of rules and regulations?

  1. We hire very smart and experienced people
  2. We implement a knowledge management system

Knowledge management helps when you have a team of experts or hire really smart people, instead of just hiring people to follow a rules book.

Knowledge management means that geniuses within your company may apply different and varied solutions instead of a single cookie cutter one, as long as:

  1. You require someone (not always the genius) to document solutions out
  2. Share them with everyone so the information is available to all and may be referenced later

Additionally a good system will allow your genius staff to view each others’ varied solutions and have discussions about them in order to further add to or examine what a best practice solution may be.

Check out stackoverflow.com for a great example of documenting and dialoging best practice solutions. From the site, it is a,

“collaboratively edited question and answer site for programmers”

Its model is a great way to gather and manage knowledge for any team, organization, or industry.

Notes to Developers

I’ve been both developer and manager for years on both large and small projects with various sized teams. During the week to week management of these teams I tend to send little notes to help guide our work process. This week I have been breaking in a new team.

I thought it might be useful to other technical project managers and team leaders if I shared some of this week’s raw notes. I hope it’s useful for other managers to have a glimpse into the day to day notes of another in their same place.

Read more

Where and How to Start using jQuery to Enhance your Drupal Site (jQuery Mini-series Part 3 of 3)

If your are not a jQuery dev, don’t worry, there are plenty of excellent resources to get you started using jQuery to enhance your site.

Start here

http://drupal.org/project/Modules/category/101 ( Drupal Modules: JavaScript Utilities )

Then simply:

  1. Browse
  2. Download
  3. Install & Configure

Some module which I recommend checking out

UI Improvements

Content Browsing

Photos

Theming and Display

jQuery Plug-in Management

More Resources

  1. Pro Drupal Development, Second Edition by John K. VanDyk - Chapter 17.  Using JQuery
  2. http://jquery.com/ & http://visualjquery.com/
  3. http://interface.eyecon.ro/ - Interface Elements for jQuery
  4. D6 Demo of Views Carousel: http://mustardseedmedia.com/podcast/episode20
  5. Comparison of “lightbox” type modules: http://drupal.org/node/266126

Drupal Best Theming Practice for where to put JavaScript (jQuery Mini-series Part 2 of 3)

In D6, you can put a .js file in your base theme directory and it will automatically be loaded by Drupal.

You can also include a js file via an entry in your theme’s .info file:

scripts[] = your_javascript.js

However, I recommend the following:

Consider your JavaScript theme-able like HTML.

  1. It should be able to be themed
  2. Put JavaScript in .js file
  3. Use drupal_add_js() in a theme function
  4. If in a module, call it with hook_init()

As HTML in a theme function / tpl file, calling your JS with a theme function allows theme developers to modify or override your JS in the theme layer.

Here it is in a module:

<?php

    /**
 * Implementation of hook_init()
     */

function trickoutmysite_init() {

     theme('trickoutmysite_javascript');
}

/**
     * Implementation of hook_theme()
 */

 function trickoutmysite_theme($existing, $type, $theme, $path) {

  return array(

        'trickoutmysite_javascript' => array(

      'arguments' => array(),
        ),
  );
    }

    /**
 * A themable function which uses drupal_add_js to include the js file
     */


function theme_trickoutmysite_javascript() {

  drupal_add_js (drupal_get_path('module', 'trickoutmysite') . '/trickoutmysite.js');

}

?>

And here is the start of your JavaScript file, which will run your js after your web page (document), has loaded.

// $Id$
// Global killswitch

    if (Drupal.jsEnabled) {
  $(document).ready(function () {

        // Put your javascript in here
  });

    }

Tips

  1. Make sure you check out the drupal_ad_js api for its excellent set of options, such as for controlling caching and placement.
  2. Creating a namespace for your theme or module.

When to use jQuery on your site (jQuery Mini-series Part 1 of 3)

Use jQuery to Enhance Site UI, Display, or Interaction

jQuery is an excellent tool for improving your site’s interface. It’s also helpful to target and change specific CSS and HTML elements quickly. [1]

I tend to use it mostly for UI (user interface) enhancements or when there is a semi-dynamic event in the display, after the page has loaded.

Examples uses include:

  • User feedback in messages
  • Tool tips (in-context user guidance)
  • Enhanced image/gallery display
  • Tabs for quick access to hidden information
  • As a style sheet switcher (helpful with accessibility)
  • Form enhancements and client-side feedback
  • Menu enhancements
  • Data entry such as a date picker
  • Table and data sorting
  • Media players
  • Content flagging
  • Tagging (better input methods)
  • Loading additional content without a page refresh
  • Dynamic Charts
  • Content Carousels (albums, photos, headline news stories)

http://www.designer-daily.com/10-jquery-scripts-to-improve-your-sites-interface-1144

Do Not Use jQuery as the Primary Driver for Site UI, Display, or Interaction

jQuery should not be used as the primary driver of your site’s display and not as a cornerstone of any primary functionality for your site.

In other words, sure, enhance your web sites e-commerce process with jQuery, but have it:

  1. degrade gracefully,
  2. making sure people may still go through the e-commerce process,
  3. even if jQuery fails completely.

Simple uses can have big impact

When consider the rendering of display effects such as rounded corners and color gradients, consider CSS instead.

Know your jQuery Patterns

The following URL provides an excellent set of “patterns” for using jQuery to improve your site’s interface:

http://www.designer-daily.com/10-jquery-scripts-to-improve-your-sites-interface-1144


[1] Page 377. Pro Drupal Development, Second Edition by John K. VanDyk

Planning your migration to Drupal

I’m often asked what’s involved in migrating a site to Drupal. The following is my typical answer (when responding in writing) .  I hope this helps both clients and Drupal service providers in their next planned migration to Drupal. 

In general migrating a site and upgrading to Drupal involves the same process as any other migration to a modern system.

Things to consider and come to your developers with include:

  1. A well defined vision for the new site (ideally agreed upon by all key decision makers)
  2. A set of business goals to meet
  3. An overall idea of desired traffic levels (which helps dev teams evaluate and plan the Drupal system set-up that will best meet your needs)

The following things are usually identified and developed along the way to building the web site.  Clients generally come to me with some to none of these completed.

  1. A desired feature set
  2. An understating of the target audience and goals for what you want them to do on the site
  3. For large enterprise sites an understanding that the site launch may typically be 6 to 9 months out, after development has started.  So this needs to be planned for.
  4. An internal team set-up that can answer questions, participate in the process, and has authority to make decisions which truly represent the company’s goals. 
  5. Functional Specifications - which list all features and functionality from the user perspective.  This usually contains user stories, wire frames, and sample screen shots.  A functional specification may be technology agnostic.  
  6. Designs in Photo Shop or something comparable
  7. Technical Specifications - based on the functional specification, this is the actual system design.  Choosing the coding and modules needed to make the system work as the functional specifications describe.

What other things would you advise people to prepare for a migration to Drupal?  Please leave your comments.