Saturday, September 27, 2008

Lotusphere 2009 - Getting to WOW

Yesterday was the deadline for Lotusphere abstracts, so I hope you got your ideas in. I'm really excited that there seems to be such a buzz around the conference this year (even more than normal, it seems). One of my former colleagues submitted a couple of ideas too, so I'm hoping he gets a chance to get up there and show off his stuff.

I actually ended up with two entries thrown into the hat and one Birds of a Feather idea. Both of the session submissions are with a couple of fantastic speakers, and as always, I'm honored to have the opportunity to present with them. I'll hold off on announcing one of them until I know he's cool with it, but I'm thrilled to tell you that the first session abstract was submitted along with Tom Duff! Tom has a great, casual speaking style and has become a beloved presenter at Lotus conferences. I hope if we get picked that I can live up to his expectations! This session will actually be quite complimentary to one of his other ideas. I, for one, am really looking forward to seeing the Moving From Plumber To Painter presentation.

Our proposed session is entitled: Getting To Wow...Interface First Design For Lotus Notes Developers. If you'd like to check out the abstract or help influence whether or not we get to do this session, please click the link above and vote over on IdeaJam. Many of the other proposed sessions are there and the fearless leader of the Best Practices track, Mr. Mac Guidera, is watching this space with interest. Looking through the list of ideas submitted so far, I think we are in for an incredible round of sessions in 2009!

Hope to see you there...

Tuesday, September 09, 2008

Epic Fail...Error Message Worst Practices (And How To Fix Them)

Error messages...the bane of users. We all dread the software crash or programmatic wrong turn that sends our productivity crashing into a brick wall. To add insult to injury, I think most of us would be hard pressed to find examples of good error messages in the software we use. Remember that one of the key goals of interface design to strive for is making the interface unobtrusive so that the user can focus on the task at hand, not on how to use the software. When users encounter an error, we are rudely pulling them out of their productive work and bringing the deficiency of our application to the front of their attention. If we can't avoid the situation that brings forth the error, the least we can do is handle it in a graceful and helpful way. Sadly, this concept seems to be the exception rather than the rule. I've often found that it's useful to perform some analysis of applications that fail to meet user expectations in order to learn better ways to do something. Let's look at some examples of error messages gone awry (the worst practices) and then figure out to fix them.

OK...thanks for that

And why, pray tell, am I not?

Eh? I don't speak Klingon.

Oh yeah...System error &H80004005. How stupid of me to forget!

Not only have you offended me sir, but you've scorched my retinas!

If only the girls at school were that easy.

The thing that all of these messages have in common is that they don't result in an action. That is, the best they do (and that is arguable) is tell the user something went wrong, but they don't address the most important part of the whole event..."WHAT SHOULD I DO ABOUT IT?!!!" If you were asked to determine the disposition of this user after encountering such error messages, what would you imagine they would say? Yeah...something along the lines of "Oh we go again with this piece of $*&@! application!" And you know what, I certainly wouldn't blame them for thinking that! Some errors are certainly worse than others. The most heinous offenders are those that only provide a very technical message that accomplishes nothing but making the user even more anxious.

The error messages that at least provide a "plain English" (or insert your language of choice here) description of the error are better than nothing, but are still not doing things quite right. Another sign of a bad error message is one that does not give any indication of whether the machine/software was at fault of if the error was due to the user's actions (e.g. stack overflow from a numeric calculation vs. user entered text in a number field). All in all, these bad characteristics and worst practices end up making the user feel stupid. Since our work as developers is supposed to be empowering users, then presenting them with less than perfect error messages means we've failed in that task. that we know what NOT to do, how do we go about fixing the problem? An important aspect of good error messages is that they provide enough information to the user so that he or she is clear about what to do next. The best error messages have some common elements:

*They tell the user what went wrong in plain English and do not make the user feel like they screwed up.

*They avoid technical jargon. If the programmer is the only person that understands the message, it is bad.

*They send an automated report to the developer (see the amazing OpenLog, created by Julian "The Genius" Robichaux. If you're not using OpenLog, you're doing it wrong!)

*Most of all, they tell the user what to do next.

That last point is critical. What the user should do as a next action will depend greatly on your environment, your policies and procedures and the error in question. Maybe it just tells the users to "Press Ctrl-C to copy this error to the clipboard and paste it into a new mail message. Send this message, along with the title of the error, to the help desk". Or it could give the user explicit instructions such as "Enter passcode 4331 into the highlighted field and press the enter key". What really matters is that the user is not left wondering what to do next. The error message should guide them to the next steps. The next action might not fix their problem, but it will at least let the user move on.

Here are a couple of good examples I swiped from the net. These messages address the criteria stated above. Notice the (in)famous Twitter "Fail Whale". No one ever said error messages had to be grey and boring.

I really love this one. It goes into extensive detail on what to do next. Do all of your errors have to be this detailed? No...but in some cases it might help.

The Fail Whale is fun and informative.

Remember that unexpected errors immediately cause users to cease being productive and often make them freak out. By anticipating possible errors and constructing good responses using the elements cited above, you'll be able to minimize the disruption and get the user on their way with the least amount of fuss.

So my call to action for you today is to review the applications you are currently working on. If your custom designed errors are more like the worst practices than the best practices, make it a point to fix them. Make them clear, helpful and actionable. Your users will thank you.

Saturday, September 06, 2008

WOA vs SOA...The Battle of the "Oriented Architectures"

Everybody Loves Web Oriented Architecture

Hmmm...interesting read indeed. While this isn't the party line for my employer, I think WOA is the way to go personally. It just seems lighter weight to me and more "agile", which of course I like. Then again, a lot of this stuff is all semantics anyway! ;-)

Thursday, September 04, 2008

Lotusphere 2009...Should I Even Try?

So Lotusphere time is upon us again in a few short months and people are getting all hyped up and excited since registration opened yesterday. This is always a fun time, as the folks in the blogging community start talking about some of the sessions they hope to submit, while others keep their thoughts very close to the vest.

I'm currently wondering what, if anything, I should submit as an idea this year. Are there any topics that you'd specifically like to see at Lotusphere based around the stuff I do here? If you think of something, please feel free to comment or send me an e-mail.

One idea I had (pretty vaguely defined at this point to be honest) is to walk you through the process of doing an application redesign. There are *tons* of applications out there in Notes land that still work great going on 10, 15 years old (or even older!) but the UIs of these applications leave much to be desired. It's important to keep the UI up to date in order to meet the ever increasing demands and expectations from our end users. It might be beneficial to show one of these applications and the methodology you can use to update the UI without a lot of rework of the underlying code. I'm thinking best practices, short cuts, quick wins, etc. It's a balancing act, really, as sometimes many people think these UI things are too "touchy feely" and that we should only be talking about writing code. I don't know...what do you think?

Also...if you've got any really cool ideas and would like to possibly team up on something, let me know that too. As I said yesterday on Twitter, I'll even let you do all the work! ;-D

Wednesday, September 03, 2008

On Total (e)Productivity In Lotus Notes

I've mentioned the eProductivity system a few times here and there and wanted to share some additional thoughts about it. It's great to see applications that enhance and extend the power of the Lotus Notes platform. Eric Mack and his development team have done a great job in this respect.

(Don't forget to check out the video demo)

If you are a practitioner of Getting Things Done (GTD), David Allen's system for managing the overwhelm almost all of us feel due to the myriad things that require our daily attention, you will most certainly want to give eProductivity a try.

eProductivity is a Lotus Notes-based application that empowers the GTD user in ways not possible using a plain vanilla system. It delivers on a promise that many software products fail miserably at. That is, it gets the interface out of the way so that you can get work done. Not only does eProductivty faithfully adhere to the major tenents of the GTD methodology, but it does so in a very unobtrusive manner.

The functionality of eProductivity is delivered as logical extensions to the typical tasks a user performs within the context of their work in Lotus Notes. Because the eProductivity functions are so closely integrated into the standard look and feel of the Notes mail template, there is little cognitive overhead for the user in learning the new system. Creating new tasks, defining next actions, creating projects...all of these events are quite intuitive in the eProductivity system. Since the user can get to these functions in the context of their regular work, they immediately become more productive, as their flow state is not interrupted.

Nathan and I have talked at length in the past about designing your interface to fit the needs of the application you are building rather than always replicating the design of the standard Notes templates. There's one exception to this rule, and that is if you are building extensions to the mail file. If you are doing this, as the eProductivity team has done, then you want to make sure that your new functionality blends in seamlessly with the existing template. The eProductivity system has accomplished this nicely.

From a user experience standpoint, eProductivity offers no flashy functionality or complicated routines and that's the beauty of the system. It is simple and easy to use, which is the hallmark of good software design. It also includes some wonderful new features, such as the Weekly Review Coach and integration with ActiveWords and GyroQ.

If you are a practitioner of GTD and a Lotus Notes user or you just want to be more productive, I can highly recommend the eProductivity system.

Monday, September 01, 2008

Domino Web Developers...Will Our Apps Be Better In New Google Browser?

Exciting times, eh? Tomorrow, Google is releasing "Google Chrome", a new, built-from-the-ground-up web browser that promises to be a modern platform for applications and web pages.

With announcements like this, plus all the new goodies like xPages coming from IBM, you really do need to start brushing up on your web skills. While I *love* rich client development, I believe it's equally important to be able to use your skills when developing for the browser. I've met far too many Domino developers who have said they don't do web. Believe want to start studying up on your html, css and javascript. You won't be disappointed and they are skills that will serve you well outside of Lotus land too.

OK Lotus Geeks, Time To Pump Up!

Hey Everybody...Are you ready for a challenge?  I came across the OneHundredPushUps site a few weeks back and put it on my list of things to explore in more detail.  I finally did this weekend, so I'm ready to get started.  The gist of the program is that you do the required work for six weeks with the goal of being able to do 100 pushups (consecutively) at the end.  I've been running lately and doing a bit of lifting, all in an attempt to get back into prime fighting condition.  I'm lucky enough to be pretty trim and in decent shape (which of course is tough given our profession...we DO sit around a lot), but I want to be more than kind of fit.  Thus, I'm adding this program to my repertoire.  I posted as much on Twitter yesterday, with an invitation for people to join me.  Some folks gave me the thumbs up and agreed to try also.  I thought it would be fun for us to be working on this together.  We can even give encouragement to each other through Twitter ('ve been looking for an excuse to sign's your chance).

Here's what I propose.  Sometime this week, do the initial test and then begin the program.  It only takes three days a week and a rather small time commitment.  If you're on Twitter, let us know when you start and provide your numbers if you feel comfortable.  Use the #lotus100pushups hashtag so we can track all of the results.

Just think...if we can all get buff and do 100 pushups, we'll be the bad ass software developers on the block and will make all the other wimpy developers (ahem...MicroSOFT) cower in fear of our brains and our brawn!  ;-D

I hope you'll join me in getting better shape.  I think this will be fun!

UPDATE #1: Joe is on board and proposes that we all be pumped up for Lotusphere. Phil is in too and already posted his results.

UPDATE #2: Sweet...other Lotus folks are joining the challenge! For updates, stay tuned to #lotus100pushups