Stating the obvious, usability guru Jakob Nielsen reports today that:
Redesigning an intranet for usability often more than doubled the use of these award-winning designs from ten public-sector organizations.
Shortly after I filed this webly wisdom under “duh,” I read through the article and found buried deep in the middle what you can do on your own to make your church and/or charity’s website or intranet more usable.
Here is the phrase that pays:
Quite appropriately, user testing was the most common usability method, and was used in 70% of the winning projects.
Allow me to enumerate this into plain English:
Those who test their intranets often wind-up with more usable intranets.
Those with more usable intranets enjoy greater use and more successful use by their user base.
What goes for government intranets goes for your church website.
Yeah, okay, so that last point was mine, still, how do you go about testing your church’s website without incurring Nielsen’s $10,000 consulting fee?
My first suggesting is purchasing, and then reading, Steve Krug’s “Don’t Make Me Think: A Common Sense Approach to Web Usability.” In the book, he not only discusses important issues such as navigation and layout, but he also dedicates two chapters on how to perform what he calls “Usability testing on 10 cents a day.”
Once you’ve read this, then I suggest you not create your own usability test from scratch, but instead customize one from the following online resources:
Before ‘Home Improvement’ became a sit-com, and more recently a reality TV theme (sigh), Norm Abram was reminding us of the carpenter’s aphorism to “Measure Twice, Cut Once.” This is because once you cut a piece of wood, that’s it. The only way to compensate for a mistake is either through a messy glue and nails process and/or to suffer the expense of purchasing more lumber.
The same is true with email, listservs and the publishing of web content. Once you’ve hit the post or send button, it is about as difficult to retract as putting an envelope inside of a U.S. Mail box. A reality that can lead to very costly mistakes if not caught before you transmit and/or publish – such as the case of the Republican gubernatorial candidate for Montana whom after winning the primary election this past Tuesday, transmitted his concession press release to various news services which read:
“It did not go as we had hoped tonight, but tomorrow is a new day, and we endorse our party’s choice for governor at this time,… You ran a hard race, and we encourage our supporters to back your candidacy in a united effort to defeat Brian Schweitzer. Congratulations and good luck!” – Billings Gazette
Well at least Brown lands on his feet for being gracious, instead of a career killer … like let’s say for giggles: “you scum sucking idiot, you stole the election from me and I’m going to make you pay if it is the last thing I do …” Still, the email mistake could have been avoided had Brown’s staff put some controls on their email machine.
Now I realize that I’m always complaining about user interfaces that frustrate users with an array of nested forms, menus and/or confirmation pop-ups, but here is one situation where I think making a process a bit annoying would have avoided what could have been a painful and costly mistake.
How? Well, I’m sure each of us can think of a something (and if you do, please don’t be shy, leave a comment) for example, why not set up post-election distributions on two different listservs, one if they won, the other if they lost? Or at least configure the listserv or email system so administration confirmation is required before a message is transmitted.
Not all controls require massive amounts of computing power. Why not create a step-by-step script and/or check-list on paper for what to do in which scenario; then rehearse it, including sending email to test accounts? Why not have test destination accounts that receive an important email for proof-reading before the trigger is pulled for real?
The point is to look at your church’s ‘standard operating procedures’ regarding computerized publishing and/or transmissions and see if they have any form of controls, automated or manual, to insure that ONLY the right information gets to the right people at the right time each and every time. If not, then put some in place or suffer the consequences of something with the potential to embarass and/or even divide your church’s congregation.
For those of you old enough to remember the original Star Trek: The Motion Picture, you might recall a gruesome scene early in the movie where a transporter malfunction turns two incoming shipmates into disfigured piles of short-lived screaming flesh. That’s sorta the image that came to mind yesterday when I looked at the Redland Baptist homepage and noticed that my VerseScrape program had to horribly mangle yesterday’s incoming words of wisdom from the Book of Proverbs. That is, my screenscraper failed due to the changes in the incoming source file; notably, the highly identifiable and easy to tokenize parenthesis surrounding the scripture verse have been removed.
Unlike the aforementioned unfortunate Enterprise members, VerseScrape is fixable, however to do so would require bringing in the girth of the Scripturizer module to identify and hyperlink the scripture reference.
Since the purpose of VerseScrape was to import a simple JavaScript rendering of the International Bible Society’s Verse of the Day, and since a number of online Bible providers responded positively to my request for syndicated daily Scripture files, I think it is time to move on to more up-to-date method of customizing a daily verse feed to fit your website’s look-n-feel.
Hard Code:
Another shortcoming contributing to the demise of VerseScrape is the fact that I hard-coded the output in my examples. This means that whenever I make changes to fix the program, you not only have to download and deploy the fix, but you must also fix the example code to suit your site’s display. So rather than just offer a variant of my article “Using Cron with LWP::Simple and XML::RSS to retrieve news feeds,” where I also hard-code the output, why not instead practice what I preached in Chapter 14 of “Son of Web Pages That Suck” and use XSLT?
Just to catch some of you up to speed, XSLT is short for eXtensible Stylesheet Language Transformations.
Yeah, I know, it sounds scary but simply put: XSLT is a mechanism in which two files create a third file. The first being an XML file, such as an RSS 2.0 syndication file. The second file is an XSL file. When smooshed together via a transformation application/module they result in whatever file format and media type you defined in your XSL file. You can read more about it over at w3schools.com.
Assign Once, Iterate Often:
One of the other reasons I created VerseScrape was because incorporating dynamic feeds into your web pages, regardless of format, can and will slow down your page load times. As suggested in “Using Cron with LWP::Simple …” one solution is to employ a loop that makes several attempts to copy the feed locally, AND THEN process it so network failures won’t negatively impact your site’s performance.
The first example is a Perl program that after successfully downloading the ESV Bible Daily Verse RSS 2.0 feed, employs XSLT to create an include file. Beneath that is a PHP program that does the same. Both code examples call an XSL sample I’ve also provided that you can modify to suit your website’s specific needs; regardless of how many times I’m compelled to fix either the Perl or PHP versions.
Theology:
I realize some of you may be asking why I’ve switched from the IBS to the ESV. The answer is two-fold, yet simple:
The IBS is still using the 0.91 RSS specification, whereas the ESV uses 2.0;
The Scripture the ESV provides is generally under 264 characters, and doesn’t include embedded HTML tags – see my article entitled “the Gospel, according to RSS and/or Atom” for a more in depth discussion of this.
If you would still rather not go the XSLT route, then you might want to pay a visit to an article I wrote last summer entitled “English Standard Version Bible RSS Feed” where I demonstrate how to slice-n-dice the ESV RSS 2.0 file using either use XML::RSS or use XML::RSSLite. If you do have questions, make improvements or find bugs in the above, don’t be shy, share your findings in the form of a loving comment.