Archive for the 'usability' Category

I disagree

Tuesday, January 22nd, 2008

Tonight I came across an update from the IE team. This topic was also covered at A List Apart. Its best to read those articles first – its on a key Web Standards issue (short version: to trigger ’standards mode’ in IE8 a new meta tag will be required on your pages) and I think a thorny one.

Sometimes you read something and instantly you feel that something is awry. I wasn’t alone either (although the author the esteemed Eric Meyer comes out with support for the solution):

As I read through Aaron Gustafson’sBeyond DOCTYPE: Web Standards, Forward Compatibility, and IE8, my immediate gut reaction was deeply negative. The version-targeting mechanism Aaron described was just wrong, completely backwards, the exact opposite of what we ought to be doing. Every one of my instincts, honed over a decade-plus of web development, was in opposition.

I should begin by saying – I am not one to bag all things Microsoft – I think too many people anthropomorphize companies like Microsoft and Google. In this situation however my gut reaction is to disagree with their proposed solution because it feels like yet another complication is to be added to publishing web content.

The burden of majority market share and a user-base of many millions is certainly something that will throw all sorts of confusing considerations into their pathway and thus I expect some missteps along the way (as I would from any organization).

The great thing about having the IE team blogging however is that there can be dialogue with the community and the best pathway can be illuminated through that dialogue.

The aspects that I feel are wrong about IE8 requiring a meta tag to enter standards mode are :

  • The list of things developers need to do to accommodate for IE grows again.
  • It feels like we are forced to trade an extra meta tag to get IE to behave.
  • The article argues our mothers will have IE8. Maybe our Mums can wait for IE8 until the sites on the web incorrectly accommodating for IE7 are corrected? I implore you – ask your Mum about IE8 tonight – let me know what she says.
  • I don’t like documents ‘knowing’ about what renders them.
  • Something Mum once said about putting your best foot forward.
  • IE9 will require a golden key embedded in your page to unlock its level 23 rendering engine.

The weird thing is I do like versioning things – we use versioning as a safety net – much as its being proposed for IE8. I guess it just doesn’t feel like the web I know. I like the idea of browser companies trying hard to render my site correctly rather than me trying to test and code for all the browsers out there.

I hate reading posts of dissent which don’t provide alternatives so here’s my hastily constructed one; Rename IE and no longer use any trace of that name to identify it.

The existing web with IE specific code only kicks in for IE. The new branded browser from Microsoft ditches the older rendering engines – drops its weight and runs like its a new entrant to the market.

Anyway, I note it here; I disagree.

Mac seduction

Saturday, November 24th, 2007

I used Macs a lot at University and whilst I didn’t completely revile them they certainly weren’t compelling enough to convert me. Price-wise the divide was large and software support was niche at best. Apple has come a long way since then playing an excellent strategic game supporting the progression of the Mac hardware as the ‘every-platform’ through BootCamp and their support ofvirtualization software, Parallels.

For me however the seduction was not one of purely access to a large variety of software – I’d seen the Mac find leading software products in almost every category of software I cared about. For me the issue was the taxing burden that poorly realised user-interfaces on Windows Pcs that wore me down. As time becomes a more precious commodity I found time wasted battling interface which could have been spent doing frustrated me to despair.

A few weeks into owning my new Macbook and I am still amazed at how few battles I’ve had to fight to be productive on it. I am discovering new software to replace my Windows favorites – where it was FeedDemon its now NetNewsWire (I think Newsgator may be able to attribute a portion of sales to the growing numbers of Mac converts); Windows LiveWriter (which I commended the Windows Live team highly on – Mac version please?) is currently surplanted by a trial version of MarsEdit; Firefox has surprisingly been replaced by Safari – I don’t know how long this will last as I am a great fan of the rich set of plugins available for Firefox but for now its probably the lighter information load I am dealing with on the new machine that is making Safari such a pleasure.

On the bang for buck front – I went with the standard MacBook and am glad I did so. For the price of a low to mid-range laptop you get a faster, quieter more pleasant to use machine. For all the tasks I’ve thrown at it I’ve not yet hit anything that has made me need to think about the hardware. And that’s the way it should be.

One final note: having used the Mac’s DVI out for connecting with my telly I think if you have a DVI enabled TV then a MacMini represents incredible value for you.

Shopping online still sucks

Saturday, November 3rd, 2007

I used to get frustrated when someone beat me to a post, especially when my post had been delayed due to other committments. I’ve shrugged that off these days as I like being economical and afterall, linking to existing related work is sort of the point of hypertext, right?

One of the blogs I subscribe to, ‘Software As She’s Developed’ by Michael Mahemoff covered and extended upon some thoughts and frustrations I’d been having with ecommerce sites recently (or forever, I guess).

I’d recently decided that I should get over my disappointment with the I-Mate KJam and should get a new phone. Having been burnt before I wanted to research the phone well and feel like I had surveyed what is available. Being in the field I am I surmised that online would be the place to undertake this research. It would be a pinch. A saturday morning would do it, surely.

I have now decided, after days of research, that it is impossible to do thorough shopping research painlessly online. I can only assume that the expense of setting up a good online shopping experience is beyond but the biggest of players. And even the good examples I found are not yet frictionless from frontpage to checkout and are also rarely localised to Australia yet.

This post covers a few technical reasons why many sites are more costly from a time standpoint than they need to be. I’ll try not to restate too much of what is said there as the post already covers it nicely and is worth a read.

Instead i’ll raise some additional rationale for why commerce online is still in its infancy and why many likely abandon it for the bricks and mortar encased sales-people of the real world.

So firstly, lets explore the why of the activity.

Why shop online at all?

If its easier to just go to the shop, compare products side-by-side and to interact with the sales people to clarify facts you are unsure on then why bother with online shopping at all?

Well, I did, in frustration abandon an online purchase for an offline one but I felt a few basic drawbacks from the experience :

  • Sales people’s incentives do not always align with yours. A quick way to test this (and I did) – ask them a question about the product you already know the answer to and you will notice the response usually was what they felt you wanted to hear rather than factually correct.
  • Its a massive task to compare products within a store as well as across competing stores. It strikes me as being suited to an online activity where data processing is common activity

Shop front clutter
Many sites lose me on the front page. I dig around a bit but generally a front page brimming full of thousand of links and thumbnails doesn’t bode well. Only oddball bric-a-brac types appreciate clutter – and only because they know it means normal people wont have found their precious treasures yet. I don’t want to see all your products and specials and categories on your front page if it obscures the basic information I am after (like, do they even sell phones?). With the phone buying experiment I found it hard to locate a full list of phones sold by a particular telecommunications provider.

Shop fronts on the web are not equivalent to shop fronts in the real world. They are more like what a shopper sees as the enter a real shop – everything! It of course could be much more effective than a real shop because you should be able to search for exactly what items you are after and get straight to them. My supermarket still fails me in this regard because I often find myself scouring the isles trying to reverse-engineer the reasoning behind why they placed the milk next to the pet food and not near the bread.

No feature comparisons
If you are looking for a phone, a tv, a car (and these items seem quite popular among humans) then you usually find yourself in a ‘feature-off’ where feature-laden products vie for your approval. Of course, certain aspects about you will help determine which features are important to your purchase decision (your bank balance/credit, existing items you own like the Blueray enabled PS3 you just bought etc.)

Having a dozen or more tabs open is a terrible way to compare obscure details between each of products. At this point I must give some kudos to shopping engines like the one powering tech.yahoo.com which facilitate easier feature comparisons. Why are their still so few ecommerce sites that support this functionality (and, indeed, when can I see a version of tech.yahoo localised here in Australia)?

Can’t bookmark ready for easy comparison

Hopefully most sites support bookmarkability these days (those that don’t are definitely missing out on sales) however, as cool as modern bookmarking tools such as del.icio.us are, they do not cater specifically for shopping and can’t extract the attributes of the products you’ve shown interest in. I’ve a feeling that before long we will see an extensible product microformat become widely adopted which browsers or shopping spiders could read however for now we must rely on the site to provide this functionality.

I’ve a feeling I could continue this list forever but I am interested in frustrations you’ve had with online commerce. What improvements can online stores make?

Faster Gmail

Saturday, November 3rd, 2007

I think my account (or indeed the shard that I am on) has been upgraded with a hotted-up version of Gmail. This post explains the approach the team took to prepare Gmail for the future.

I am strong believer that the performance of an application is a key influencer in whether people continue to use it or not. For core applications (such as mail) it is critical that no unnecessary wait times be incurred as users notice when they are spending a disproportionate part of their day, everyday, battling their client.

For application authors, web or otherwise, who are seeking to place their app into the core group of applications users access frequently performance will be key. The goal is to remove friction between the user and the completion of their task.

On the topic of speedy Gmail, a few months back I wrote about web applications breaking out of the browser. Soon afterwards I came across the xul-runner-based Webrunner (apparently renamed Prism in the latest version) and used this to break Gmail and Gcalendar out into their own applications. I highly recommend you do the same. The suppositions I made in my post all held up; applications perform much better in their own process away from other web pages. The applications themselves are also much easier to access having been made available on the taskbar.

Webrunner and similar initiatives all have further to go but are already very usable and will save you minutes or longer everyday.

Is tabbed browsing working against us?

Wednesday, August 8th, 2007

One of the things that made me a proponent of tabbed browsing was that the myriad of browser instances which contained my random travails across the net hogged the space on my taskbar, rendering it useless.

At around the same time (in my adoption of it at least) windows started to group up instances of programs into single tasks on the taskbar and Mozilla browsers introduced tabs. This cleared up the clutter and the taskbar became useful again.

Since then I have some new frustrations that have evolved out of that shift in functionality.

Firefox hogs resources

I use Firefox because of its extensibility – I only run extensions that extend my browsing habits but because I run quite a few of them, Firefox’s memory footprint by late in the day is consuming 300-500 meg of memory.

Web-based applications are harder to get to, slower to switch to

Firefox is regularly tardy to respond, often busy undertaking loops for hundreds or thousands of Javascript loops which may appear to have equal priority. Windows is not great at managing multi-tasking either however I do think that it does take a more sophisticated approach than a browser’s internals.

This tardiness really frustrates me and creates friction for me getting to my core applications quickly enough.

I am not just browsing any more

It occurs to me that many of my Firefox tabs are not instances of browsing content but rather applications that I use either to do my job (web-based task systems, in-house utilities…) or to run my life (webmail, web-based calendar, contact manager…).

Applications should not be hidden amongst your browser tabs or competing for priority within a browser’s sub-system. They should have their own space, be easily accessible and be able to interact with other applications and your OS infrastructure (for example, notifications).

AIR, XULRunner to the rescue?

By making applications available in standalone, browser-based applications I think there is scope to bring our core applications back to surface rather than hiding them within the browser-space. Save that space for your research and other web meanderings.

Frameworks such as AIR  and XULRunner offer opportunities to rescue your core web-based applications from the fray.

Managing a large codebase

Tuesday, July 17th, 2007

Anyone who has worked at an organization with more than a few developers for a reasonable period of time would have felt the pain associated with a growing codebase. The word ‘legacy’ creeps into the everyday language and the number of maintenance tasks soon exceeds the amount of time spent writing new code.

The maintenance tasks hopefully make your existing clients happy (’serve the client in front of you’) but the reduction in new code generally means less new features per developer and therefore is naturally linked to a reduction in your ability to increase the amount of product you can sell to your clients.

There is of course a correlation with the amount of code you write to the amount of maintenance it requires however exactly to what factor this is depends entirely on your processes and how they affect the technical debt you incur.

Relish deleting code

My first piece of advice to any developer (you never know when your own codebase will become a multi-developer maintenance monster) is to relish deleting code. Most code, after-all, is the application of standard algorithms and patterns to specific problems and is therefore not that useful or unique once it is no longer required.

Don’t keep code around just in case. You have it under version control so as soon as it is orphaned then delete that sucker. Have an active deprecation process that is regular and ruthless!

Campaign actively to deprecate unused functionality within your organization as well. The temptation to keep functionality around just in case is not reserved to developers; product development, sales and marketing all fall into this trap.

It is costly to leave unused functionality and code intact because it costs an organization in a number of ways:

  • Developers have more complexity to deal with and this will always result in waste.
  • Users have more unnecessary complexity which affects the usability of your product which in turn affects how your product is percieved.
  • Technical debt is incurred over time - its like continuing to pay rent on an apartment you already moved out of.

The global namespace is not your playground

Making changes becomes the focus well before the codebase even reaches the inflection point of maintenance outstripping new code. This is because many features of any given software product are built on top of existing features.

The enemy of change is the dependency and the easiest way to create unnecessary dependencies is to create globals because if its in the global scope then other coders will use them. Declaration scope and JIT inclusion of necessary dependencies are your friends – use these wisely.

Those entry points into your codebase that are necessary because they are utilitarian or because they kick your application off should at least be namespaced off into a structure by using a pattern such as the Singleton. Don’t be fooled – a Singleton is still a type of global but it is much easier to attach documentation to and control the signature for it.

Divide your code into layers to assist in reducing coupling and avoid having lower layers called directly from layers that are not immediately above them. For instance – if your page or front-controller calls your database directly you will find you reimplement the same query creation code, query execution and object population code over and over. Its much better to abstract this functionality to an object hierarchy which can specialise in these tasks as there is nothing useful in seeing lowlevel logic scattered through-out the logic behind your presentation.

Much of this advice is available from a variety of sources and I do recommend reading up further on the topics I have mentioned if you found that some warning bells with your own organisation’s codebase started to ring. Codebases can become massive – particularly when their are multiple developers involved multiplied by a few years of time. Some continual investment in keeping the house clean will pay off by allowing you to spend more time on new code.

Wioota.com revived by Windows Live Writer

Saturday, July 7th, 2007

I think my recent reduction in post frequency, whilst mostly due to various events in my personal life, has been somewhat affected by growing frustrations with my authoring tools.

As I’ve previously noted, I was using the performancing.com firefox extension for authoring my blog posts. Its since renamed to Scribefire and had a few improvements however in the end its just not pleasant to write into an area that is a third of your viewing area. You can expand it however this makes the reason you would use a plugin for authoring reasonably redundant.

Browser extensions – particularly firefox ones can seem a touch sluggish and I assume this is because they are mostly interpreted javascript.

I also did a few of my posts in the editor interface provided in the Wordpress administration area. Its okay for last minute edits and applying of links but in general its got a few niggling issues with the editor that you constantly come across.

Time to scout for a standalone, hopefully native application for authoring. I thought I had seen one from Microsoft but decided to Google around anyway in case there was something out there that was widely regarded as the preferred post authoring tool.

Windows Live Writer appeared in the results so I figured I may as check it out as it was a free download and of course would be a native windows application.

A painless install later and I was up and writing my post. And now this one. The interface is clean, attractive and simple. The editing area is presented like a blank sheet of paper which seems to beg for words to be entered into it.

image

If your OS is windows and you run a blog, I recommend checking it out.

Holy-grail for calendar access with Thunderbird/Google Calendar?

Monday, April 16th, 2007

I have long found Outlook a pain-in-the-butt to use and a few years ago switched back to Thunderbird (I had been a user of the Netscape Mail client in a former life…).

I find Thunderbird is much lighter and quicker at filtering mail than Outlook. There are better clients but all seem to have their own quirks which have kept me from adopting them.

The main difficulty with replacing Outlook with Thunderbird is that it lacked a good calendaring option. Incompatibility with the other Outlook stalwarts in my office meant I was forever having to ‘View Source’ on email bodies to see when a meeting was to be held so I could go and manually enter it into Google Calendar (my primary calendar which I share with my team). Fortunately I found the Lightning plugin to add a calendar to Thunderbird but I was still manually updating meetings in Google Calendar.

Now I have just come across this excellent tutorial on setting up what might be the holy-grail of calendar setups and want to share it with all Thunderbird users and frustrated Outlook users. Here is the short version of the tutorial for experienced Thunderbird users :

  1. Install Thunderbird 2, RC1
  2. Install the Lightning plugin so Thunderbird can read Outlook meeting requests and place a calendar in the Thunderbird interface.
  3. Install the Google Calendar provider to allow Lightning to add two-way synching with Google Calendar.
  4. Add the XML address for your primary Google Calendar (Found under “Calendar Settings >> Calendar Address”).

And you are done – test it by setting a meeting in the calendar within Thunderbird. You should see the meeting appear in your Google Calendar shortly (I had to manually refresh). More information at each the sites I have linked to.

Twitter is like crack for procrastinators

Tuesday, April 10th, 2007

Catchy title maybe; but hopefully anyone who is or will be experimenting with Twitter might consider this post and draw some value out of it.

The Steve Rubels and Robert Scobles of this blogoworld (notice its hard to refer to virtual domains, I keep choosing different ways to refer to the world of online information, I will continue to until I find one I like) are heralding Twitter’s importance via their virtual pulpits. After about a month of my own experimentation with the service I suggest tread with some caution when signing up for Twitter alerts to your phone or workplace IM.

For a basic description on Twitter see my previous post  ‘Tweets are the Ultimate in Disposable Content’.

Few of us have jobs which benefit from that much interuption and very little of the content available through Twitter currently could concievabley be relevant to our minute-to-minute activities at work. We cannot draw the same value out of the content as those whose jobs it is to evangelize web usage and cannot benefit from the immediacy of republishing new technologies the minute they hit blogland. I am not saying the hype around Twitter is necessarily wrong – there is useful or entertaining information on it but , like blogs it will be more useful to you at a time when you choose, for a task you determine.

As I covered in my earlier post, the value the author places on their own words is linked to the audience’s percieved value of the content. Lets put it this way there will never be twittershelves built for storing your favourite tweets from the Shakespeare’s and Dylan Thomas’s of our times. You will wait for them to publish a book and then you will buy that for your bookshelf because you know that a book will be the fruits of their considered thought and effort.

I think acknowledging that this will be how people value individual content items on Twitter will also will drive how people value Twitter overall. One of the key variables in the Twitter value equation is in the timeliness of the information – only timely information that truly provides value in being timely will serve the audience. This is not to say there wont continue to be a constant streams of banal chatter… it just means that this content will have an erosive impact on the audience – taking more from them than it gives.

To avoid being owned by your inflow of everyone’s presence information I’d suggest for now, switch it off. Then, have a think about what you will get out of it and how you might distill this information source down to an information flow that is there when you need it at a rate that will truly benefit you.

Steve Rubel has good suggestions about how to filter and utilize content (see his Gmail nerve center articles) however remember, he takes this stuff to the extreme. I don’t know enough about the particulars of his job to comment but for own jobs, I suggest thinking about what your job entails and determine how much of a need there really is to be up to the minute with all the comings and going of the internet.

Is this actually something you could catch up on once a week (or even a month!) and instead spend those valuable minutes or hours lost to Twitteruptions and use them to being productive in the actual tasks pertininent to you being a valuable employee (or betting on the dogs, whichever suits you best)?

I am interested in other people’s experiences with Twitter – let me know if you are using it, wont use it or stopped using it.

Tweets are the Ultimate in Disposable Content

Monday, April 9th, 2007

Following on from my previous post on the fast-food like properties of web-content I thought I would look at the service which embodies the latest acceleration in content consumption, Twitter.

For the uninitiated, a ‘tweet’ (as referred to in this post’s title) is a single message sent via the Twitter service. Twitter is a short-message system which can be accessed by numerous applications and devices; primarily, but not restricted to, web, IM and mobile. Messages are by default public and therefore you could think of it as ‘mini-blogging’ where messages can be posted as easily as sending an SMS or IM.

The rise of Twitter in the early adopting set (lets face it, it hasn’t hit mass market yet) has seen the introduction of a new, even more throw-away type of content. The plethora of states, moods and emotions punctuated by links to sometimes vaguely interesting content really leaves a faint impression. The experience lacks cohesion and any real filter determining significance or relevance of a particular content item. This gives it a sort of fun lightness and I guess the beauty of it is in the aggregate of the impressions you get from someone’s Tweets you follow.

There has been plenty of discussion on blogs about Twitter – all discussing what amounts to the same thing – does this medium have future? Not to be silent on the subject I do think it is a service which will be a place alongside other internet-mediums like blogs and IM. I think it will be in a form evolved from the one we know today – one of the reasons being that many currently heavy users of Twitter in this experimental adoption phase will stop or at least severely par back their usage of the service as they realise its capacity to cause constant distraction, fragmenting their thinking and to generally get in the way of Getting Things Done. I’ll touch more on this in a subsequent post.

Something I haven’t heard much in the current conversations about Twitter and that I think is important is that one of the key strategic strengths of the service is infrastructural – the link between IM and mobile network messaging and the web is a useful one which many applications will build upon. I think one of the players in the industry, whether Twitter or Jaiku or a new player to come (and regardless, likely to be acquired by one of the big companies) will benefit from owning a reliable set of gateways maintaining these links.

The direction the presence products will expand will be in their ability to filter and summarize the content they deliver – experimentation with Twitter and Pipes will be interesting as the service will need to overcome its procrastinatory qualities. With the internet already being the procrastinators achilies heel the last thing we need (and I am assuming I might be representative of at least some of us in this) is a stream of random information flashing on GTalk or our mobile phones constantly to distract us from what we are actually doing.

Where Twitter-like applications could come into their own is if they can combine the users current geo-location, mood or other information to tailor very relevant alerts to them. Currently however its like trying to work with firehose to the side of your face.