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.
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:
Branding
Maintaining the technology
Lock-in
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.
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)
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:
Aggregate content from congressional members (video, text, feeds, and other forms of media)
Share content with the public and reporters in a way that it easy to navigate
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.
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:
Some things need talent to do really well.
It’s hard to scale talent.
One way people try to scale talent is by having the talent create rules for the untalented to follow.
The quality of the resulting product is very low.
So what do we use in our teams and organizations instead of rules and regulations?
We hire very smart and experienced people
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:
You require someone (not always the genius) to document solutions out
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.
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.
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.
It should be able to be themed
Put JavaScript in .js file
Use drupal_add_js() in a theme function
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
Make sure you check out the drupal_ad_js api for its excellent set of options, such as for controlling caching and placement.
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:
A well defined vision for the new site (ideally agreed upon by all key decision makers)
A set of business goals to meet
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.
A desired feature set
An understating of the target audience and goals for what you want them to do on the site
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.
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.
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.
Designs in Photo Shop or something comparable
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.