Archive for September, 2007

Usability, Frustration and Delight

Sep 07
27

clippy
On Wednesday Jared Spool spoke at UPABoston about the web today, its history and perhaps its future. One of the more interesting parts was how usability plays into products. In the past the main objective was to overcome frustration. If you overcome frustration and do something useful you can call it usable. But what happens once a product is usable? Are you done? Of course not. You can extend past frustration and actually delight your customers.

But what are the elements of delight? Jared, argued that the elements of delight are fairly well known from the gaming industry. Games have been trying to delight us for years. While this is in part true I think the game analogy is the wrong approach. A typical game will polarize people. The things I may find delightful about Doom and Halo would drive my mom nuts. Similarly the fascination she derives from Solitaire would bore me to death.

In fact the desire to delight through the use of game metaphors has been brilliantly explored by Microsoft’s Clippy. Clippy is in many respects a game avatar and in fact does delight a fair percentage of the people who use him. When Clippy was introduced he would tend to delight about half of the people who saw him. The other half couldn’t get him off the screen fast enough. By gaming standards apealing to 50% of the market isn’t bad but for a user experience you need to do better.

Here is a list of things that I believe ‘delight’ users beyond basic usability (that comes first of course)

  1. Design – An attractive and well thought out design.
  2. Fluid transitions or animations. (as long as they are quick and don’t confuse you)
  3. Basic physics emulation (subtle inertia, stickiness, elasticity).
  4. Anticipation, Autocorrection or Autocompletion when the computer anticipates your needs correctly (frustration when it chooses incorrectly)
  5. Appropriate sonification (Basic and subtle sounds to reinforce certain actions)
  6. Discovery – Finding something quickly that you were looking for, being surprised by something new you didn’t expect
  7. Responsiveness if you’re not waiting for your computer you’re more likely to be delighted
  8. Re-use – Finding a new way to use a familiar tool
  9. Customization and Personalization
  10. Integration or compatibility (Wow, this thing works with all these other things I already own)
  11. Value – Wow that’s cheap.
  12. Humor

Others? What can software makers do to cause delight?

How to meet – Fight club style

Sep 07
19

I’ve been to hundreds of meetings, some good, some awful and I’ve come to realize that the majority of people don’t know how to  meet. Here’s some guidelines Tyler Durden style.

    1. The first rule of meeting is we don’t talk about meeting.
    2. The second rule of meetings is we don’t talk about meetings.
      We’re there to do something not to schedule more meetings.  State the purpose of the meeting up front. Decide what you want to get done and get to it.
    3. If someone says STOP, or goes limp, taps out the meeting is over. 
      Everyone who’s at the meeting needs to want to be there. If you don’t want to be there you’re not going to contribute and it’s going to waste everyones time.

    4. Only five people to a meeting.
      Three contributors, two stakeholders. Any more and it’s a presentation (very different.) Meetings with 8, 10 or more people tend not to be as productive, less gets decided and more time is wasted.
    5. One meeting at a time. 
      No dashing off to another meeting or double booking.
    6. No cell phones, no email.
    7. A meeting goes 45 minutes, no longer.
      You get diminishing returns for more. Leave the extra 15 min just in case.
    8. If you’re in the meeting you have to talk.

    Facebook, Myspace and Social Networks don’t Matter

    Sep 07
    18

    I’ve joined Facebook, Myspace, LinkedIn, Friendster, Orkut, Digg, Flickr, Twitter and a bunch of others. The verdict… Social network sites are pretty useless for socializing.

    Don’t get me wrong these sites are entertaining, voyeuristic and in many cases addicting. The primary function on most of these sites is as the name implies ‘networking.’ I get invites from people to add them as a friend, buddy, pal, co-worker to their list of friends, buddies, co-workers and pals. The social graph grows but little changes.

    Do you have more real world friends because of these social networks? Probably not.

    What these sites do is allow me to spy on people. I can see what they like, what they do, who they know and what photos they take. No more secrets.
    Many of these sites don’t focus on the ‘social’ part of their name. Evite is the best ‘social’ tool and I’m not even sure that they consider themselves a social-network. I would say I’ve met more people because of Evite then from all the other social networks combined. Evite works because I didn’t have to accept networking relationships. Instead I show up. The experience is focused on the fun part of socializing, not the boring part ‘networking.’

    20 things the iPhone should do

    Sep 07
    15

    I broke down last weekend and got the iphone. Apple Computer Inc has created a design that is great with UI that was lovingly hand polished.

    Of course no matter how good it is you always want more. This is what separates great products from mediocre products. With my old cell phone everything was crap so my wish list started with things like… “i wish I could get reception” and perhaps… “How do I edit a phone number for a contact?”

    Because the iPhone is by far the best phone I’ve ever had I want it to do all the things that all those other devices promised.

    1. The iPhone is great but the lack of games and certain applications like to-do-lists, chat applications and specific business tools leaves a gap that many developers are filling. While it’s great that this “is possible” it would be even better if this was encouraged and supported by Apple. (SDK please) Update: Done
    2. I should be able to use any song that I own as a ring-tone for free. If I bought the song why should I pay more to have it play automatically? Isn’t this what fair use is about?
    3. The Google Apps/iPhone connection is weak. You can sort of get things to sync but email has to use POP settings (not imap) and syncing calendar and contacts is awkward. Update:IMAP DONE
    4. Let me connect and sync my MacBook using bluetooth or wireless.
    5. Support rotated and non rotated mode on more screen (like the home screen, youtube and my inbox.)
    6. Add some texture or grips to the sides. The sucker is slippery.  Update: Done
    7. When held sideways to watch YouTube videos your fingers cover the speaker of the iPhone.
    8. Use a headphone jack that will be compatible with normal headphones.  Update: Done
    9. Sync my contacts, calendar and music between two computers. I have a Macbook at home and a PC at work but I have one life, one set of contacts and one calendar.  Update: Done
    10. Support bluetooth GPS pucks. This would be a killer accessory for my car. GRMN+GOOG+AAPL :) Update: Built in GPS
    11. Better camera. The images the current camera takes are blurry.
    12. Calendar events synced from Google calendar can’t be edited so you can’t add a reminder. This is similar to #2 but seems like something that Apple could fix without Google’s help.  Update: Done
    13. Video podcasts have two ways to view them one is from the Podcast section and the other from the Video section. The two sections aren’t really connected and it’s not obvious when a podcast has video content.
    14. I wish I could sync my stock portfolio via an RSS feed. If this existed e*trade, fidelity and others would have feeds right quick.
    15. Speaking of RSS I would love an offline RSS reader.  Update: Done Via 3rd Party Applications
    16. Whenever I take a picture with the camera and plug-in the phone to charge suddenly both iPhoto and iTunes want to load and sync. Why can’t this happen under the covers with no UI?
    17. The browser should support Flash & the file browse dialog to upload a photo to a site.
    18. I should be able to share a business card (vCard) over bluetooth
    19. I should be able to use the internet connection with my MacBook. I haven’t been able to find anything useful that you can do with bluetooth on a Macbook/iPhone. Update:Done Via 3rd Party Application
    20. Open up access to other carriers. So far I actually have no complaints against AT&T but I would have preffered to have a choice on this.

    Even though I want all these things the most important thing for me is to not loose the core user experience. The ability to create a great product is to add features without negatively impacting the overall experience. As more features, options and settings get added you risk the overall experience. If done well you get the best of both worlds if done poorly you get every other cell phone I’ve ever used.

    Testing IE6 on Vista Using Virtual PC

    Sep 07
    13

    If you’re a web developer you may need to test on IE6, Firefox and IE7 while running Vista. The last two are easy the first one is a little trickier. Here are the steps needed:

    1. Download Virtual PC 2004
    2. Download the Internet Explorer 6 Testing VPC Image
    3. Unzip and setup everything and launch Virtual PC.
    4. Create a new virtual machine for Windows XP, click next, name your virtual PC image and then continue to add the “Hard Drive Image” you downloaded in step 2.
    5. Run the image and get the basics working. You’ll now notice that XP has no memory and can’t get on the network.
    6. To increase the paging file you have to right click on My computer, go to properties, advanced, performance, settings, advanced and set the virtual memory using the change button.
    7. If you get a firewall dialog box make sure you allow access.
    8. To get the VPC on the network you need to open up internet explorer and go to the options tab. Then go to connections tab and select LAN settings. Here you will need to uncheck the Proxy Server checkbox. ITGProxy is the internal proxy that needs to be used within Microsoft internally. It’s clear that this was never tested outside of Microsoft as this setting should never have been set. This drove me crazy for about an hour as I checked all sorts of settings. Hopefully this tip can save you some headaches.

    The entire procedure is rather a pain to test for a browser. You have to download a half a gig of software just to test compatibility. In theory it should be possible to run IE6 side by side with IE7 (I do this on XP using a great program called Multiple IE’s) but for whatever reason it doesn’t work on Vista. One step forward two steps back.

    Allow clients to accept credit cards

    Sep 07
    12

    For years I was using a 3rd party service to accept credit cards for software purchases. This was a good idea at first because it allowed me to get off and running quickly in creating the software and not worrying so much about the sales, processing side of things. The problem is that these third party companies tend to charge 10%-15% or more per transaction. Lower priced alternatives such as Paypal, Google Payments and others offer a lower cost alternative but they divert the user experience away from your website.

    I wanted a simple credit card solution that was also low cost. I reasearched a lot of companies. Overall the credit card industry is fairly confusing and you’ll have to get accustomed to the different players.

    • The credit card company
    • The processor (also known as the bank) actually handles the money and talks to the credit card companies
    • The gateway is the electronic transaction company that provides services to talk to the bank and accepts data
    • You -You’re probably farmiliar with yourself
    • Your customers

    The process is overly complex and unfortunatly you get charged allong the path of most of these transactions. Credit cards will charge 2-4%, the processor will charge a monthly fee and the gateway will charge a per-transaction fee. Many of the companies may also charge multiple monthly fees.

    The company I went with is called E-Online Data they offer good rates, minimal fees and a fairly complete integration package with Authorize.net (an electronic gateway) and best of all they offer the ability to allow clients to accept credit card accounts. This is great because your clients or customers still get the same credit card rates but you get to collect a small percentage of the monthly fees that usually go to the credit card companies. This means you can save your customers money while taking a slice away from the credit card companies.

    I had previously used a company called Esellerate to process the bulk of my payments and after moving to E-online data I saw my conversion rates go up by about 30%. The reason is simple. Many of these credit card processors spend a large percentage of time worrying about the data and much less time figuring out a simple checkout process. By moving away from a 3rd party solution and designing the checkout process myself I could reducing the checkout process from three pages down to one page,

    If you’re doing credit card processing through a third party like Esellerate, RegNow or many of the others consider doing it yourself. It does take a little more time but if done right it can be worth it.

    Why IE isn’t standards compliant

    Sep 07
    8

    I recently read a post that whines about the fact that Internet Explorer isn’t standards compliant. Boo hoo. Of course it isn’t standards compliant and if people understood how business works we could get IE to be strict on standards in 8 months.

    To understand why IE isn’t standards compliant you need to understand how operating systems are sold.

    Sales: We have a great new operating system. It has all sorts of great features, it’s more secure, robust, cost effective, it has great ROI, feature, feature, feature.

    Business: Will all our business applications, devices and internal websites continue to work?

    Sales: Yes. We support 98% of all your core software and our web browser is backward compatible so it won’t break your internal web applications.

    Business: Ok, well we’ll roll it out in stages over the next four years and we’ll support both OS’s during the transition.

    IT Department: Shit.

    The equation is simple. Businesses take a long time to adopt new technologies and they tend to fear change because it tends to break things and cost them money. This creates an incentive for Microsoft to create backward compatible technologies. It’s hard enough to create a standards compliant browser but it’s likely impossible to do so and maintain compatibility with the bugs you had in previous versions of your browser. This is exactly what IE is trying to do. They will happily fix ‘IE hacks’ that require a workaround but they don’t go for the brass ring of passing the acid test because too many businesses want the legacy behavior because they don’t want to update their internal applications.

    It’s not about websites asking for change it’s about big business. What can business decision makers, educational institutions and governments agencies do to help impact this type of change quickly?

    Simple.

    Business: We’ll upgrade the OS when it supports a truly standards compliant web browser.

    Get your company, state government or city to say that sentence and you’ll see a new version of IE that’s finally standards compliant in the next 8 months.

    A Social Network for Social Networks

    Sep 07
    1

    There is an obscene amount of social networks and there seems to be no-end to new social networks that are being developed. This is great because it means that developers are thinking about communication as a key feature to the success of an application. The problem with social networks is that users end up spending a lot of time building and maintaining the network. Here’s a concept for how this could work in an open way.

    The key guidlines:

    • The identify of users on the network needs to remain private
    • Collaboration between networks should be encouraged

    Social Network Interop

    Here’s how it works.

    1. We have two social networks and each one has a set of users [ O M L Q ] and [ M L N O P Q R ] each user is identified uniquely by their email address.
    2. Each social network can be encoded using MD5 or a similar hash algorithm. Different social networks can share thier social graph information without divulging the identify of the individuals.
    3. Missing edges and connections can be spotted between the different networks
    4. The MD5 process can be reversed with a local lookup table. Normally you can’t reverse an MD5 hash.

    The basic procedure could be implemented as a simpe API with two core functions:

    • ListFriends(FriendID as string, ServiceName as string, SharedSecret as string) returns an array of FriendID’s
      You call this function when you want to get a list of friends from someone elses social network. You pass in the encoded ID of the person you’re looking for, your own service name and the shared secret that you’ve agreed on with the other service.
    • CreateIDfromFriend(Email as string, ServiceName as string,SharedSecret as string) returns a FriendID
      You can use this API to compute the ID’s of each user in each respective network. The API is such that you’ll always get the same ID for any given email address. A simple method would be to MD5 the email, XOR the SharedSecret and Shift the letters up using the service name.

    The way these API’s would work is that any two social networks that want to talk to each other can have a shared secret key. This key ensures that both networks agree to the same privacy rules and protocols. Without the key you can’t compute the proper hash for a person. Given these two basic functions you can find the missing nodes on a social network and allow it to grow faster.

    Since cooperation helps build social networks this basic technique could be expanded to allow more sophisticated trust relationships.