If I had to single out a reason why sites fail that really can be avoided, it would be the lack of testing. It always seems as though sites are up against the wall to go live and do…only to fail when their users can’t use the site for the sole reason it was created. If adequate testing had been done on the site prior to launch the users’ experience would be much more pleasant and better conversion rates would result. However, it’s not as simple as it seems.
What I’ve discovered over the years is coming up with testing scenarios, while a key to the success of the site, really comes down to how well the client really knows its own clients or potential users. While you are building a site for a client, it would be helpful to have your client coming up with scenarios to test the site. The typical user scenario is pretty easy. The ones that are difficult are the unusual users who may be coming to the site. Now, my friends….I am not saying “unusual” meaning strange. I mean unusual in the sense that they are not the typical user a client will expect to use their site.
If you want to help find out what is the atypical user, consider these questions:
1. Who would your typical user be, and who would your typical user be most likely to tell about your site.
2. Consider geographical areas, meaning terms you would use that someone from another part of the country wouldn’t.
3. Consider ages. A person who uses your site could potentially tell their elderly parent who is somewhat new at the internet…would they know exactly what to do on your site…could they get to the parts of the site you want them to.
4. Consider gender. Lowe’s has increased the amount of sales, and sales decisions by females almost 30% more than its known competitor, Home Depot. Why? Because Lowe’s considered the female perspective for what would make going to a hardware store (for all intensive purposes) more enjoyable for women, but yet still cater to their target market. So they were able to keep their focus on the target market of males 25 – 40+ and still increase their sales. So consider the fact that you may in fact have other genders visiting your site, and consider their perspective.
I don’t expect you to be able to test every type of scenario, but perhaps by considering the atypical user, you may actually be able to have a much more stable application/website and really take advantage of those new site surge visitors.
Ok, this week on Thursday Tips Day, I have a rather unique situation I was working on for a client. The issue: To get Tomcat 6 working on a Windows 2003 server running IIS and have ColdFusion 8 running on the Tomcat install.
This is not as easy as it would seem. According to the Adobe ColdFusion 8 site (www.adobe.com/coldfusion) Tomcat is not directly supported as is was in the past. The only mention of Tomcat in any of the installation documentation is only in a JBOSS type instance. So here’s the first question…why would someone want to do this?
The client’s decision is actually a very good one. Those of us familiar with ColdFusion over the years would agree that JRun is not the best Java server around. In fact it sometimes causes more harm than good. And in some unique situations it really ends up crashing the server and causing all kinds of Coldfusion errors when it gets too bogged down. Now in CF8′s Enterprise Edition, the server monitoring tools are very good in letting you know what is causing the overloads. Sometimes it’s your own code doing it. Sometimes it’s not. However for those of us not willing to spend the $4,000+ to purchase a copy of Enterprise Edition, we’re back to the same page as always.
Anyway, by choosing a Java server such as Tomcat, which has plenty of public support and has been running Java apps for quite some time very reliably on both Linux and Windows platforms (and even a Macintosh here and there I’ve seen), the client will be able to run their JSP apps, plus leverage Tomcat’s excellence in running CF8′s Java based programming technology. Therefore a very lean and mean system and as the client puts it, “a smaller footprint” on their server.
The Installation Sequence
Ok, so to start, go ahead and download the latest version of Tomcat (http://tomcat.apache.org/download-60.cgi) and install it on your Windows2003 Server. You can do the direct services install or the longer more in depth binary install, but both work just fine. After the installation is complete. You should easily be able to browse to http://localhost:8080 to get the nice little Tomcat welcome page.
Next download a copy of CF8 from Adobe’s website (http://www.adobe.com/products/coldfusion/) and install that on your server next by using the “Deploy as J2EE, and as a .WAR” installation. When the installation is complete you should have a .WAR file most likely if you used the defaults in your C:ColdFusion8 root directory.
Stop the Tomcat Server via your services or direct command line.
Now copy the .WAR file into your {TomcatRoot}webapps directory.
Start the Tomcat Server and within a few minutes, Tomcat should have expanded all of your directories into the webapps folder. So at the end you should have a /cfusion directory sequence in your webapps directory.
Stop the Tomcat Server again.
Ok, now for a fun part. Open up notepad and create a .bat file called setenv.bat and place it in the {TomcatRoot}bin folder. Place the following code in that .bat file making sure to change the bolded areas to your exact folder structure:
rem Set a few variables.
set JAVA_HOME=C:Program FilesJavajre1.5.0_14
set CF_HOME=C:Program FilesApache Software FoundationTomcat 6.0webappscfusion
set CF_WEB_INF=%CF_HOME%/WEB-INF
rem Concatenate binary file directories into a single variable.
set CF_SHARED_LIB=%CF_WEB_INF%/cfusion/lib
rem The following variable must be on a single line.
set CF_SHARED_LIBS=%CF_SHARED_LIB%;%CF_SHARED_LIB%/_nti40/bin;
%CF_WEB_INF%/cfusion/jintegra/bin;
%CF_WEB_INF%/WEB-INF/cfusion/jintegra/bin/international
rem Add libraries for binary files to the Windows system path.
set PATH=%PATH%;%CF_SHARED_LIBS%
rem Set JVM options to enable sandbox security (all on one line).
set CF_SECURITY_JVM_OPTIONS=-Djava.security.manager
-Djava.security.policy=”%CF_WEB_INF%/cfusion/lib/coldfusion.policy”
-Djava.security.auth.policy=”%CF_WEB_INF%/cfusion/lib/neo_jaas.policy”
rem Set JVM options for CORBA. Uncomment this line if vbjorb.jar is not in
rem your JRE’s lib/ext directory.
rem set CF_CORBA_JVM_OPTIONS=-Xbootclasspath/a:”%CF_WEB_INF%/lib/vbjorb.jar”
rem Consolidate JVM options.
rem * Uncomment this line if you’ve configured CORBA
rem set CF_JVM_OPTIONS=%CF_SECURITY_JVM_OPTIONS% %CF_CORBA_JVM_OPTIONS%
rem * Uncomment this line if you haven’t configured CORBA
set CF_JVM_OPTIONS=%CF_SECURITY_JVM_OPTIONS%
rem Populate JAVA_OPTS, which will be used by the catalina.bat file
rem when starting the JVM.
set JAVA_OPTS=%CF_JVM_OPTIONS%
Ok, go ahead and start Tomcat back up, and browse to localhost:8080/cfusion/cfide/administrator and with any luck, you should have the nice welcome screen of the ColdFusion 8 admin staring you in the face. Go ahead and configure your instance with datasources, etc. and place any .cfm files you want to run in the /cfusion/cfide/ directory.
That’s it. I’m now in the process of getting the .cfm files to render in other directories and folder structures in the rest of the Tomcat so you can browse to other directories with .cfm files and get them to render. Until next week!
I’ve recently changed my contracts to include some specific information about testing and testing scenarios. You’ll recall my blog about how important testing is to the success of a website retaining its visitors, but I’d also like to point out how testing can really get in the way of your contractual obligations as well. Take this example (and no Mike M. this isnt’ you….LOL)
You have a contract which outlines what a site will need to do….allow a company to login, create a job for a customer, do the job, bill the job. Sounds simple right?
However throw in the variables such as, they don’t have any standard billing methods (not ones that could be followed by an application at least), multiple scenarios of “exceptions”, and a staff that doesn’t seem to talk to one another.
Now from a legal perspective, if the contract is simply written outlining the issues above, we’re sunk. The client can take as much time as they want to test, to work out their own billing practices, etc. However if you add a paragraph which specifically outlines how the system will be tested and what to do if “exceptions” to those rules come up, you’ll be in much better shape.
So here’s my paragraph (feel free to use in yours, and send me an email letting me know you found it helpful):
By using this in your contract you are doing two things. First, you are letting the client know that they must provide you with any “exceptions” to the standard rules they are asking you to code, knowing that if they are that important, it will affect the price of the application.
Second, you are making certain the client understands that if their testing of the application raises a red flag they didn’t raise ahead of time, that shouldn’t delay your ability to keep the project moving. If you don’t, the project will get sidebared while they sort out their business issues and you’ll move on to another project, get involved there, and then be forced to come back to this one and somehow squeeze it in. Not a good scenario.
Please don’t hear what I’m not saying….lol……this is just as much of a protection for the client as much as it is for the developer. I tell all my coders it is their responsibility to keep the client on track, not the other way around. By doing so you’ll deliver an application as promised, on time, and hopefully within budget. It is that important…so go ahead and start using this in your contracts and as I said before, send me an email at doug[at]justicesolutionsllc.com and let me know your thoughts. Til then….happy coding.
Doug.
Have you ever visited a website that had so much information on the home page you just didn’t know where to begin? I’ve been to them too. It almost gives you a headache.
Marketing 101
Some of the best marketing minds have written (and I remember this from my own marketing classes in college) it is best to give your visitors a chance to decompress when they enter your store. Now of course they were referring to retail stores, but the same theory applies to websites. Take these two sites (click for a larger view):

Both are nicely designed, but the 2nd clearly gives you a moment to take in everything, figure out where you’re needing to go…and then go there.
Be Nice to Your Users Through Simple Elegance.
As CNN clearly demonstrated…they have more links and loops because they are in fact a news company. However, as a user coming to their site….I get overwhelmed. If they would just set up a few custom paths for their users, I think their site would be much better received in the web. So remember this term….”Simple Elegance”. It is the term we here at Justice Solutions coin for our design concepts.
Custom Pathways
I’ll probably dedicate a blog to this next week and come back and link to it from here, but to give you a preview…I’ve been telling some of my larger clients that if you have more than 20 different places any user could go to from your home page….consider the use of custom pathways. Because even the most busy and huge sites could probably take the 100+ links they have (to major sections that is…not individual articles, etc.) and categorize their users to fit into maybe a handful of choices. So instead of a vacation destination having tons of links to hotels, flights, restaurants, attractions, etc. Change it to “Plan My Trip”, “What to Do When I Arrive”, “Where Can I Eat”. Then once in that subpage…give them the options to plan their trip with links to your flights, hotels, etc.
Well that’s it for this week. Remember….Simple Elegance….let the user take in your site….admire the design….hell you paid for it….so might as well let your users enjoy it too. Until next week….happy coding. Chief Superhero Doug, out.
Doug.
Yellow Flag on the Track
I promised my son that I would take him to see Speed Racer today. As a father, I so enjoy taking him to movies that he is really looking forward to. However, given that this wasn’t Monsters Inc., or Garfield…I was somewhat concerned if in fact he would enjoy it. Strangely enough, I was pretty concerned for myself being that I grew up watching Speed Racer cartoons and as strange as they were, I really liked them. However, making it into a live action move….definitely needed a yellow flag on the track.
Green Flag
The good news…we both loved it. Even at 2 hours and 15 minutes, he was on the edge of his seat the whole time. So by now you’re wondering what Speed Racer has anything to do with web development and design, so I’ll let you off the hook. The marketing job of a web designer is to cater to their client’s target market. However, when the audience ranges from young to old, our jobs become very tough and we need to take cues from the Wachowski Brothers as to how to do it well.
Designing for the Masses
Even though this movie has been getting blasted in the movie reviews (which is not surprising considering Underdog got blasted even worse and is one of mine and my kids favorite films) it is a great example of how to take a wide audience range and piece together a presentation to keep all parties interested.
Speed Racer catered to boys obviously because of the cars and some pretty intense racing scenes, however it also catered to girls because of some great humor by Speed’s younger brother, Spritle and his pet chimp, Chim Chim. I also think the bright colors appealed to both as well.
For the adults, the wives/mothers/girlfriends who may have gotten dragged to this film by their husbands/boyfriends/kids seemed to really enjoy the storyline. It actually surprisingly had a very good one, and I don’t think the CGI graphics hurt either.
For the guys, who doesn’t love a lot of action, fast cars, and some pretty nice eye candy courtesy of some scantily clad female airline attendants, vegas showgirl looking grand prix driver escorts, and yes….a very nice outfit worn by Christina Ricci.
Websites are Much Like Movies
So if you approach web design from the same thought pattern, you essentially can design websites that can cater to a wide array of audience members. Therefore potentially reaching a wider customer base. Even if the members themselves viewing the site aren’t potential buyers, if they like the site, they will probably mention it to someone who does.
And don’t rule out putting in some things for kids. Let’s say you are designing a site for a pest control company. Creating a nicely organized, informative website with good monthly prices will probably get the attention of the adult homeowners you are looking for.
How Kids Can Be Helpful in Reaching Your Buyers
But let’s say you throw in a flash ant farm game, or something like pick up the food before the cockroaches get it (I know I need help). And one family who is looking at pest control companies finds it on the internet…sees the game….has their child play it….who then tells their friends at school about it…they all go home…ask permission to play it (we hope) and then the parents of those ten kids see it….viola’….you’ve just reached another 10 homes through young adults who probably think bugs are a lot cooler than you do!
So if you get a chance, go see Speed Racer and see how you can appeal to a very wide audience range, and at the same time…see what changes you can make to your own website to appeal to a wider range as well.
Happy Coding!
Doug.







