Don’t write vague use cases, write concrete, specific use cases

There’s more to testing your rockin’ church website than making sure your slick-new AJAX supported features deprecate for older browsers and mobile devices. Your testing should also insure that your cool church web site succeeds in encouraging and facilitating visitors and members to execute real-world actions along conversion goals you’ve established for your inspiring church web site.

Simply put, your church website should have real-world, action-oriented goals that in general:

  1. speak to a demographic of seekers, members, missionaries and/or ministers
  2. gets and/or helps said demographic to do things, like visit and/or volunteer

Doing this means testing your church’s Internet offering at least at two levels:

  • functional – do the neat and nifty ‘things’ work? Like hyperlinks, images, CSS, calculations, Flash detection and/or Javascript?
  • business – do the things that work, help visitors work towards a desired goal? Like find the sermon feed, and then add it to their aggregator?

To test the ‘business’ we need to go back to the ‘goals’ and build scenarios of likely user interactions, or in geek-speak: use cases.

Unfortunately those fluent in ancient geek may not be the best equipped to design such scenarios – as exemplified in the broad and conflicted definition of ‘use cases’ currently offered by the WikiPedia which reads:

“… a technique for capturing functional requirements of business systems and, potentially, of an IT system to support the business system.”

Uh … no … it’s about business rules and work flow, not functional requirements and certainly not about IT systems support!

Rather than collude the waters more, I’d like to point out an excellent set of articles by Matt Stephens over on the Register’s developer blog entitled:

  1. Use case style means handbags at 30 paces
  2. Vague and ambiguous use cases

Read as order as the later-written article nicely enumerates the elements that comprise a successful and effective use cases in pragmatic real-world terms that include:

  • Writing cases in the active versus passive voice
  • Descriptions of functional requirements versus behavioral objectives
  • Knowing how many ‘rainy day’ scenarios are enough to get the job done
  • the pros and cons of comprehensive versus minimal testing templates
  • Whether to reference domain classes by name
  • Whether to reference UI elements (screen/page names, buttons etc.)

I would suggest that anyone who hasn’t thought through the user interactions in terms of real-world scenarios do so – and with specificity. As anyone in my line of work, vague test cases have no other path than to vague results … or as Mr.Stephens correctly asserts:

“… Don’t write vague use cases, write concrete, specific use cases that leave nothing to the imagination instead.”

Put another way, you don’t receive good results because you’re not asking the right real-world, objective-centric questions.

Posted in Uncategorized

Mother of all cheat sheets cheat sheet

No, you’re not seeing double and I’m not drunk – well sorta drunk – that is drunk on cheat sheets. Or should I say the semi-definitive list of technical cheat sheets …

… here’s a lovely ‘resource filled’ link I recently stumbled across: “Our Favorite Cheat Sheets

As the page’s description simply suggests:

You never know when a good cheat sheet will come in handy — bookmark this page to keep our treasure trove of useful information at your fingertips!

You don’t need to suggst bookmarking this site to me twice … nor do I think it’s a bad idea to do the same with it’s sister site entitled: “Learning guides and tutorials

I should warn ya – you might want to wait until you have an hour or three as you’ll find the sites these pages list as addictive as you’ll find them helpful to managing your websites.

Posted in Uncategorized

Horizontal CSS menu generator, vertical CSS menus generated too

List-o-matic – Create CSS-styled navigation blocks based on unordered lists items.

Get your semantics on kids! Above is a lovely little link to a lovely little free, online utility from the lovely folks at to help render lists of CSS-driven menu options as God intended: using the HTML list element. Go figure!

So for those of you beating yourselves with Max Design’s most excellent Listamatic listing – flagellate no more!

Links referenced in this article:

Posted in Uncategorized

Five ‘gee-whiz’ irritants at the Victory Independent Baptist Website

Here is another Fast Five lessons we can learn about good church website design by critiquing not-so-hot church web site design. Today’s candidate is the website for the Victory Baptist Church in Greenfield, IN.

A site whose employment of various ‘gee-whiz’ visual effects is a lesson on how to place stumbling stones in the path of your user’s goals. For example:

  1. Flash Navigation – why?
    • slow loading for the dial-up impaired
    • renders simple search-able text as unsearchable .SWF media files
    • requires support for those who don’t have Flash installed
    • limits the ability for staff & laypersons to simply update the menu
    • can kill back-button functionality in some cases
  2. Animated gifs & other graphic gizmos
    • slow loading for the dial-up impaired
    • they look and feel cheap
  3. Page fades, swipes and dissolves
    • slow loading for the dial-up impaired
    • doesn’t work on all browsers
    • gets in the user’s way
    • fatigues user’s eyes
  4. News Page – hard to navigate
    • articles should be supported with a ‘search’ feature
    • would be nice to have the ability to filter by date
    • log in link doesn’t explain the benefit of logging in for user (why bother?-)
  5. Pastor’s keyboard
    • has all the navigational issues of the News Page
    • additionally, this should be a blog, or blog supported

Don’t worry, I’ll get back to my more in depth stories, but I figure there’s a better chance at healing more church web sites if I can offer some very quick analysis that’s beneficial both to the subject’s own church website, as well as those of you reading this praying I don’t stumble onto yours!-)

Oh, and remember, we’re in a healin’ mood/mode here so if you have useful suggestions, leave a comment; in love.

Posted in Uncategorized

Five Things we can learn from the Deliverance Outreach Ministries

Here are five good examples of bad web design service up by the Deliverance Outreach Ministries web site:

  1. Home Page: Just because you can, doesn’t mean you should – in particular I’m talking about the embedded MP3 file that blares out of one’s computer when arriving to the site. This is not a good idea because:
    • slows the page load, especially for dial-up users
    • gets people visiting your site from their office computer in trouble
    • gets moms visiting the web site late at night mad because it wakes-up the baby
    • becomes absolutely annoying for individuals who navigate back to home page more than once
    • not sure about this case, but can create RIAA/royalty related problems
  2. example of text rendered using unsearchable Do not represent text with graphic because:
    • slows the page load, especially for dial-up users
    • confuses users who try to click on the graphic representation of underlined text
    • search engines these days are smart, but not so smart where they can dig into your jPeg blocks of plain, Arial text
  3. KidZone page: Where’s the beef?
    • One line wonders don’t cut it especially when it involves leaving their children unattended with strangers.
    • One line wonders, such as in this case actually can hurt the ministry’s conversion goals because their terseness translates to many users as clueless and/or disorganized. The last thing any parent wants when dropping their kid off with strangers for the first time.
  4. ‘Jabaz’ Prayer page: Image Reduce, please – head-shots so large that visitor can see one’s blemishes are not a good idea because:
    • slows the page load, especially for dial-up users
    • ineffective in obtaining one’s conversion goals
    • IrfanView is free and easy – learn to use it.
  5. example of blue text on blue backgroundAbout Us: Text is more readable when its color easily contrasts against the background, in other words:
    • don’t set blue text against a blue background.
    • Also, said of blue in this case usually reserved for and recognized by users as a hyperlinks. Don’t confuse your users that way.

If I had to add a six, I’d suggest that all centered, all bold, all the time fatigues the reader’s eye – but this is a fast five – so this point about the Service Times page only gets an ‘honorable mention.’

Side Note: As you can see, as part of my previously announced category overhaul, I’ve created a “Fast Five” – five points of five points of effective and usable church website design based upon a five minute web site review.

And while I hope this new category will include some good examples – there are enough bad examples resulting out of tje ‘cool church website’ mentality to keep us busy for a while.

Posted in Uncategorized

Pastor uses CRM system to track congregation contacts

Imagine empowering your pastors and lay ministers with the ability to leverage their cell phones, home computers and/or office email to track follow-ups with visitors, schedule visits with members in the hospital, track prayer requests and other contact-centric information from anywhere about town, or even around the globe. Such pipe-dream functionality is now an every-day reality as several software as a service (SaaS) are now offering affordable web-based customer relationship management (CRM) system.

Case in point: Highrise

“I am [now] able to care for the congregation. No longer do I have to worry about someone ‘falling through the cracks.’ I am able to log all my interactions – email, phone, appointments in one place and create a reminder for appropriate follow up.” – Rev. Andrew Conard, Pastor of Congregational Care at The United Methodist Church of Leawood, KS

The following quote comes from the a post on the 37 Signals product blog entitled ‘Pastor uses Highrise to keep track of interactions with his congregation.’
In this article, we’re offered screenshots and descriptions of how Pastor Conard has incorporated Highrise an integral part providing the best possible care for each person by tracking conversations, visits and thoughts.

Case in point: Plaid

“People in ministry meet lots and lots of people. And every single one is important. Unlike business, ministries serve everyone … make sure you enter that name into a database.” – Remember and track names in ministry

The above paraphrase is from Tim Bednar, Web designer and creator of Plaid, a shared communications and tracking application that can be used by small teams to collaborate their contact information, reminders and comments. Or as Tim puts it:

“You deserve better tools than a spreadsheet or dog-eared church directory. And traditional church management software (ChMS) is too complicated. Plaid is a shared communication and tracking tool used by innovative ministry teams. It will keep you on track, grow your ministry and eliminate stress.”

Amen to that!

Case in point: SugarCRM

SugarCRM is an open-source (OS) customer relationship management (CRM) package …
What I realized after looking at this is that Fellowship One has more in common with a CRM package than it does with most church database software I’ve seen. It is designed to manage communication between church leaders and individuals, be they first-time visitors, or core team members.

So why not just use SugarCRM instead of Fellowship One? Because Fellowship One has all these features in addition to everything you’d expect in a church database plus some …” – Brian Glass blog

Of course, Brian does warn that because SugarCRM is geared at business. And like similar SaaS CRMs, it may not have some of the features found in church-centric CRM services.

Case in point:

“The vision of the Foundation is to use’s people, technology and relationships to improve our communities, inspire youth to be more successful, support the world during times of extreme need, and promote compassionate capitalism.”

The above quote comes via the SalesForce Foundation web site, which extends its market-leading Sales Force’s enterprise, software as a service CRM to nonprofit organizations.

The point is:

Whether or not you are involved in full time, part time or lay ministry, it may be to your benefit to check out employing a web-based customer relationship management to help you feed the hungry, tend to the widow and orphan, visit the infirmed and/or imprisoned … and of course to track down them donors whose charity helps keep your ministries rolling.

Personally I think I’d start with Plaid and work out from there. Mostly because Tim Bednar has both the ministerial and technical background to make it work in a manner that’s more suited towards your ministry’s needs than say SalesForce or SugarCRM.

And yes, you can quote me on that!-)

Posted in Uncategorized

How to manually monitor your (Linux) server’s storage

For those enjoying the cost benefits Linux hosting there are some downsides. One of those is waking up to the rude reality that your hard-drive is maxed-out ‘fuller than a woman’s purse.

Tomorrow, I swear, I’ll get back to the less geeky stuff … I’ve got a great not-so-nerdy topic for tomorrow.

But for today, a propeller-headed post dedicated to my good friend Chuck Holton, who not only runs, but also The latter of which started generating errors when he tried to prune and optimize the datatables driving his bulletin-board. A trivial task these days with tools such as vBulletin and/or phpMyAdmin.

Unfortunately a rogue spammer conjured up a situation reminiscent of Dante’s first circle of hell – pushing in email faster and before a scheduled disk-check job provided by the hosting company could run.

Meaning, because we didn’t get warnings, we were without a clue as to what and where the problem existed – a situation not only caused by spammers, but by rude residents for those of you on shared server solutions.
How is it I speak with such authority? Well a few months back, Chuck informed me at around 1am that he was having troubles, I issued the following MySQL directive:

repair table home_posts_text

The response was that wonderfully descriptive error message “28 when writing to datafile.” (Can you say ‘ubiquitous?’ … Sure … I knew you could).

After a quick visit to the ‘Rosetta Stone‘ that is otherwise known as, I putty’d back to my ssh session and entered the following directive from the command line:

df -h

Here is the response … with some of the names changed to protect the hackable. Note the 100% in bold: Filesystem Size Used Avail Use% Mounted on:

/dev/sda5 31G 30G 52M 100% /
/dev/sda1 99M 81M 13M 86% /boot
none 629M 0 629M 0% /dev/shm
/dev/sda3 289M 8.9M 264M 4% /tmp

One way to avoid this situation is to augment your hosting provider’s nightly solution with a ‘cron-able‘ script of your own. One that would will check that usage % with greater frequency than once a night … and instruct it to send everyone in the known universe an email when it gets close to the danger zone.

Before I re-invent the wheel, I’m looking for such a script … unless you already have or know of such a script, if so, then please, leave a comment.

Posted in Uncategorized

Cleaning-up the BibleGateway SOAP example

On the page entitled ‘How to display the Verse of the Day on your Web site,’ the good folks at the BibleGateway describe how to leverage the NuSOAP toolkit to consume the verse of the day SOAP-based web service using PHP. Unfortunately, their demo code is a bit buggy and when fixed, doesn’t render a result really helpful to a casual developer. This post ‘cleans-up’ this cruft to help you better incorporate the BibleGateway’ verse of the day on your church’s website.

Speaking Pure Geek

I know, I know, for some of you I might as well be speaking ancient Greek … or geek depending on your perspective. But I also need to throw a bone to some of the die-hard HYCW cult members who’ve been craving for a coding sample, not really having offered one for about a year now.

So bear with me as I describe how to use the PHP NuSOAP library to incorporate the Bible Gateway’s verse of the day onto your church web site.

Prep Work:

Assuming you have ‘shell’ access (via Putty), execute the following steps:

  1. mkdir nusoap
  2. cd nusoap
  3. wget http:///sourceforge/nusoap/
  4. unzip
  5. cd samples
  6. pwd (this last command is optional – can cut-n-paste the path if you want)

Edit Work:

Leaving your shell session/window open, now open your browser and go to the BibleGateway ‘how-to’ page and copy their sample under ‘2) Add the Verse of the Day code to your website‘ into your computer’s clipboard.

Now back to your shell session, create a .php file to run the SOAP client, e.g.:

  1. nano bg-votd.php

Once pasted, implement the following changes

  1. modify line# 15 so it reads:
  2. fix the bug between lines 23 & 25 from:
  3. to:
  4. modify line 34 so it reads:
    print header('Content-Type: text/plain');


Okay, now you should be ready to run your sample … for example, here’s my result set:

Once you get that to work, you may want too add requests strings to support different versions, other API arguments and/or infuse related services.

Then all that is left is rendering the array members in HTML – hopefully using stunningly stellar semantic HTML.

If you do, let us know. In the meantime, enjoy the my cleaned-up code sample below:

* Display Bible Gateway Verse of the Day.
* original:
* implements:
* modified/updated:
*		Dean Peters
*		11-Jul-2007
*		modified library path in original on line #15
*		fixed bug in original on line #24
*		modified output in original on line #34
*		additional documentation:
*			/2007/07/11/cleaning-up_the_bibleGateway_sOAP_example

/* display SOAP errors */
function showErrors( $soapclient, $results ) {
echo 'Request: <xmp>'.$soapclient->request.'</xmp>';
echo 'Response: <xmp>'.$soapclient->response.'</xmp>';
echo 'Debug log: <pre>'.$soapclient->debug_str.'</pre>';
echo $results['faultstring'];

/* load NuSOAP library */
/* dp 11jul07 : path updated to reflect nusoap distribution defaults */

/* create new soap client */
$soapclient = new soapclient('');

/* set parameter values */
/* dp 11jul07 : removed buggy extra parenthesis */
$parameters= array('preferences'=>array('version_id'=>'31',

/* call service and get verse of the day */
$results = $soapclient->call('doGetVotd',$parameters);

/* display verse of the day */
/* dp 11jul07 : modified output on good load  */
if($err = $soapclient->getError()){
showErrors($soapclient, $results);
} else {
print header('Content-Type: text/plain');

Or for those who’ve read this article to the bitter-end, you can skip steps 6-11 and just wget the text-file version here.

Posted in Uncategorized

Jakob Nielsen: written articles v. blog postings

Usability expert Jakob Nielsen betrays his 1997 post entitled ‘how people read the web‘ with his most recent article entitled ‘Write Articles, Not Blog Postings.’ That is, instead offering scannable content to a community of aggregators, the good Doctor suggests we ‘go long’ with our online rants and ramblings in the stylings of Spurgeon. I would suggest otherwise, tempering such advice as a bit myopic in light of some of the blogosphere’s biggest success stories.

First, let’s get one thing clear – you have more of a chance having your church, charity and/or lay ministry blog succeed if you DO follow Dr. Nielsen’s advice than if you don’t. That said, his most recent article would have perhaps been better entitled as “Researchers: write articles, not blog postings.”

Here’s what I mean:

I have no doubt in my mind that Jakob Nielsen knows his own market and demographics. Nor do I disagree with his basic assertion that we distinguish ourselves over the white noise of the Internet when he writes:

In contrast, in-depth content that takes much longer to create is beyond the abilities of the lesser experts. A thousand monkeys writing for 1,000 hours doesn’t add up to Shakespeare. They’ll actually create a thousand low-to-medium-quality postings that aren’t integrated and that don’t give readers a comprehensive understanding of the topic — even if those readers suffer through all 1,000 blogs.

That said, there is something to be said about Shakespeare‘s oft-quoted assertion from Hamlet:

… brevity is the soul of wit …

How especially true this 1603 statement is in a day an age of aggregators and smart phones where ‘small media‘ includes ‘small blurbs’ that are short, sweet, punchy and to the point. For example, let’s consider these online success stories from a blogosphere of brevity:

  • Instapundit – dominates the blogosphere with one line wonders and witticisms
  • David Winer – two or three paragraphs a day, usually covering a wide variety of topics
  • Vincent Flanders – his pithy daily suckers feeds the sale of books, articles & lectures
  • Little Green Footballs – short’n’snarky, the way we like it

And for good measure, let’s do the same within the boundaries of the Christian blogosphere:

  • Mark Shea – sorta the Instapundit of the Christian blogsophere
  • Adrian Warnock – a stellar example of concisely compelling content
  • TallSkinnyKiwi – like Adrian, can says it all in a paragraph or three
  • PyroManiacs – a mob-blog with the ability to go Spurgeon, but is mercifully restrained

All of the above, from both lists, generally publish posts that are short, sweet and scannable. From time-to-time they go long, but for the most part they understand that many of us are communicating with a generation of gamers and/or TV watchers – both demographics that have shown a desire to consume content in sound-bites, snippets and other manifestations of ‘small media.’

Otherwise, why would podcasts and the iPhone have any value – and text rule the cell phone world? Otherwise, and please don’t miss this point, why would so many of the above use their blogs as small consumable advertising units funneling folks into larger articles and/or audio works?

Blog to support larger works:

Again, this is not to denigrate the work of Jakob Nielsen, but rather to cast it in a slightly different context as I fear a man so influential may send some of you without Dr.Nielsen’s marketing chops down the primrose path of creating big huge chunks of white noise.

Instead, all that may be needed to obtain your conversion goals are reasonably sized, well thought-out, well-written, concise, punchy and to the point posts that support your real-world and/or written works?

If nothing else, remember these word by the good Dr. Himself:

“People rarely read Web pages word by word; instead, they scan the page, picking out individual words and sentences”

Okay, I’ve said enough. What do you think? Leave a comment, in love (only this time, keep it brief wouldja?-)

Posted in Uncategorized

Hazards of HTML Haste

Allow me to relate how a near-death experience reminded me the importance of moving fast enough to get the job done, but not so fast that I break all the rules – killing cute little 7 year old children in the process.

First and foremost, I would like to thank the inconsiderate individual traveling 50mph on Cary Parkway this past Sunday morning at about 10am. My daughter was the person you almost killed at the intersection of Kildaire Farm Road while you were hastily running a red-light on the way to church. Fortunately I was paying attention, and my wife had just taken the car in for a brake job and tune up.

So what does this have to do with my church web site? Glad you asked …

Deadlines are important, but …

Dates and times are not inherently evil, they only become evil when we forget that they are merely another tool for getting a job done and/or coordinating communications. Meaning such tools only become destructive when people lose sight of said utility – turning the time line itself into the goal.

Case in point the wreckless driver yesterday whom nearly ruined the lives of both my family and his because he couldn’t wait 3 minutes at a stop light on his way to church.

Same thing happens with church web sites. Either an upcoming event and/or an eager web designer fields a site before it’s ready. The result can be any one of the following near-fatal car wrecks on the Information highway:

  • embarrassing typos and misspellings
  • lack of cross-browser support including:
    • JavaScript errors
    • HTML rendering snafus
    • bad or missing Flash detection
  • confusing &/or inconsistent navigation
  • broken links and images

Take time for planning & testing

The only cure for the above maladies is to take time is to take time for planning & testing. This includes testing the functionality of the underlying markup AND testing the ability for a user to accomplish a given set of (conversion) goals.

There are other examples, but the point is simply this: Use deadlines to help move a project to completion. Do not use deadlines as an excuse to blow through the red lights of documentation, functional testing and usability testing.

The 7-year-old you kill may be a member of your congregation.


I suspect some of you are wondering how I knew said red light running speeder was headed to Church? Simple, our vehicles came close enough that I could see both he and his wife dressed-up in their Sunday best, she clutching a Bible (yeah, that close). Then again, the way said knucklehead was driving, she may be clutching it just for good measure.

Your mileage may vary …

Posted in Uncategorized