Showing posts with label applications. Show all posts
Showing posts with label applications. Show all posts

Thursday, 8 November 2007

Ask 37signals: How has open source helped or hindered?

Open source provides an incredible amount of technical leverage for small companies. No matter who productive your rock-star programmers are and no matter how much judo you apply to your problems, solid infrastructure takes a long time and benefits immensely from broad involvement. It really does take a village to raise great infrastructure.

Nice read.

Wednesday, 7 November 2007

Applications or Actions?

So, what do I mean by an action? An action can be something that involves storing data, formatting it or publishing it. Naturally, applications have long supported these actions - but what irks me is that I need more than one application to complete a task.

For example, say I wanted to set up a new website about my cat. My workflow would usually be this:


  1. Find a picture in my iPhoto library.
  2. Open Photoshop to crop and resize. Then save for the web.
  3. Launch TextWrangler and churn out some nice semantic XHTML.
  4. Open Cyberduck and FTP my XHTML and JPG up to the web.
  5. Open Firefox just to check it all works.
  6. Use Mail to email everyone I know to tell them about my new site.

Whilst listening to some music from iTunes, of course.

For this simple task I need 6 applications, plus 1 background process. Each of these programs has features that I need for my project - but I am not using enough of each program to justify launching the full blown functionality of that application.

iTunes is a comprehensive music management application. I don't need the library functions whilst building my website - just stick an album into the playlist and off it goes. iPhoto has my entire photo library on hand, but all I need to see is the pictures of my cat. Photoshop has just about everything I'll ever need to enhance images, but all I need to do is a little cropping. TextWrangler has great functionality, but I'm just writing some bog standard XHTML.

I'm being spoiled with all the features that these applications give to me - but I don't need them.

My contention is, why do we need vast applications when most of the time we're only going to use 20% of their features? What would be more useful is application fragments.

A fragment could consist of a text editor, or a cropping tool, or a layering engine, or a character map, or a database. When I boot the machine, it would go into a mode where I could say:

"Hey Macintosh. Today, I'd love to put on some Radiohead - The Bends, I think. Can you find for me some pictures of my cat? I'd like to crop these pictures, then write a website for them. Then, I'd like to email all my friends to tell them about my new website. That'd be grand."

Using Spotlight, Macintosh could find The Bends out of my music library and spin it in the background. Then, it would find all of my pictures tagged with 'cat', and display them in a nice grid interface. I could double click on one and it would organise a cropping tool, with a nice resize mode. Once I was done there, it would launch a text editing mode with syntax highlighting so I could finish the XHTML quickly.

I would be using elements of all of these programs - syntax highlighting, web rendering, mailing, cropping, searching, playing media - but the experience would be seamless. The underlying technology would support the action I was doing - building a website - rather than flicking between applications.

There's hope for this kind of implementation yet - the iLife suite seamlessly manages media effortlessly. Making a movie, for example - iMovie can draw media from your photo/music databases without launching iTunes/iPhoto first. This is the kind of stuff I'd want to see.

Friday, 2 November 2007

What Gordon Ramsay can teach software developers

An interesting article - software and restaurants aren't so different after all.

Tuesday, 30 October 2007

Generic Commands.

In application design, there's a tension between power and simplicity: Users want the ability to get a lot done, but they don't want to take the time to learn lots of complicated features.

  • One way to address this dilemma is to use progressive disclosure — that is, to show users only the most important options until they ask for the advanced features.

  • Another good approach is to use generic commands, which remain the same across many different contexts and thus reduce complexity.

Nice reads.

Friday, 19 October 2007

Saturday, 6 October 2007

Dissecting Hotmail.

If you left it to Microsoft to design every application interface in history, the iPod would have never been the success story it is today. But this is not an examination of why Apple 'get' design. This is an examination of flaws that shouldn't be there in the first place. By making things appear easier, the total application looks harder to use than it actually is.

Let's just have a quick look over the Windows Live login screen. I'm looking at it through IE6 on a Windows 98SE machine. So, my experience is totally in the hands of Redmond as I write this.



It's colourful enough, sure. It's also extremely big. What made it so big?

Useless Happy Talk

The first column is just happy talk, plain and simple. It's also verging on the edge of being patronising, which is probably the worst application of happy talk that there is. Please Microsoft, give me some credit. I think I should know how to use a login form by now.

Ironically enough, being on the left, the happy talk is the first thing you'll read. Microsoft have inadvertently drawn attention to a block of text nobody should be reading. People should be logging in here, not waddling about pushing their mouse around in some popcorn and wondering why Vista's 'cupholder' just broke.

Using Buttons As Links

The second column gets worse. The reason buttons are buttons is that they perform actions. They are not hyperlinks. A hyperlink takes you to another page without any action taken, whereas a button performs an action, such as deletion.




Arguing that a link should link is not just being pedantic. Users expect links
to navigate
. Specifically, they expect an entirely new page to load,
replacing the current page. Any other action is liable to cause confusion. To
users, navigating is far removed from what the links in the REI do, which is
execute commands, actions that apply or alter the underlying business
objects


Michael Zuschlag, Links and Other Wrong Controls



What irks me about the second column is not that Microsoft want me to sign up for a shiny new Hotmail account. It's that the way in which they have added an unnecessary button to what could have been a simple link.

Another annoyance is the little icon beside Windows Live ID. It sort of looks like a link, because the icon appears to have an action behind it - but nothing. In fact, it's almost duplicating the information found in the third column.

The third column is the most useful, because it contains a form. Yet it seems to have the lowest visual priority because it's over on the far right. It's all nice until after the password field. In which lies some confusion.

Link Colours

Blue is a common link standard on the Web. And Microsoft to their credit have put many of their links as blue. But, one isn't. And it's the 'Use enhanced security' "link". Why is this? Why is one link black when all the others on the page are either grey or blue? It's confusing.

And why is this even an option anyway? Shouldn't we be signing in over SSL automatically? Tell me, what is the advantage of giving two security options and, by default, enabling the inferior non-SSL login? What's the point in writing a feature such as User Annoyance Control and allowing the user to disable it?

UAC is another topic. I'm going off topic here.

Tooltips

I can't believe that I'm actually writing this. The tooltip for the 'enhanced security' option gives rough idea of what it does. What would be better is 'Click to login via a secure server'. That's it. The current tooltip is a little wooly (why would I want to see a lock icon? What does that do?). Worse, remaining links don't have tooltips.

Instead of popping up an absurdly large popup for the (?) links, why aren't those tooltips? Why does 'enhanced security' get a tooltip? Why does the 'Sign up' button get a tooltip, but the login button doesn't?

If you're going to do tooltips, be consistent.

Branding

There's too much of it here. Windows this, Windows that. Hell, read this from one of the Windows experience blogs.


Windows Live Product Team Blogs. Almost all the Windows Live apps and services
have an official team blog you can visit to read the latest from their team
about their product. This can also be a great place for leaving feedback. Many
of these blogs allow for comments. You can leave feedback and suggestions
through leaving a comment on their blog (all you need to do is log in with your
Windows Live ID). How do you find all the team blogs? Simple. I have created a
special page specifically for all the Microsoft Team Blogs that exist. You can
see the list of Windows Live blogs here. The Windows Live Hotmail and Windows
Live Mail teams even have a blog specifically set up for email support. You can
also visit the new Windows Live Wire blog for all the Windows Live blogs as
well.

These two options are available to anyone wanting to leave
feedback on the Windows Live applications (such as Windows Live Messenger,
Windows Live Mail, and Windows Live Writer
) or the Windows Live web services
(such as Windows Live SkyDrive, Windows Live Hotmail, and Windows Live Spaces).
(source)


Talk about a mouthful. I doubt that any of these applications need the 'Windows Live' tag. I think it sounds cheesy and very much within the realm of monopolising online presence; Microsoft for your email. Microsoft for your office work. Microsoft for your desktop. What's wrong with catchy names, like Basecamp, Digg, Blinksale or just 'plain old' Hotmail? Infact Hotmail is a great name all by itself. It's like Feedburner. Roll with the Hotmail name and drop the stupid 'we must own every software program you use' paradigm.


Back onto Hotmail, there's way too many logos on this login screen. They have to go.


Rejig


Here's my proposal for a new login screen. It does away with what I think are key usability flaws. Gone is the Windows Live crap and back is the Hotmail of old. People don't have a chance to get confused with the Windows Live ID, as it's just a simple username/password combination. There's no happy talk and no three column confusion.




I've also gotten rid of the useless footer for the most part and moved the 'Forgot password' to go with the 'help' link. Sign up is now a link. The whole thing is a lot less confusing and there's no crap anywhere - the space saved is shocking. It's not as minimal as it could be, but it's definitely better than what's there now.


What I didn't do was revamp the colour scheme - I like that.


As a side note: I did that entire exercise in Paint (you can tell from the lack of anti-aliasing on the Hotmail font) - really, does Microsoft consider that a worthy graphics editor to bundle with their operating system? Paint has a lot of potential to be great - but right now, it's rubbish.


Yes, I got the idea from Andy Rutledge. I thought it'd be a good exercise.

Wasteland Vista

Some really interesting points in this article. Read the whole thing, there's some really good advice on how not to design an application. And I completely agree with the following:

Vista doesn’t seem concerned about balance, at least to someone acting as a
user. From what I can see, the specific visual form was designed to provide
appeal in showrooms and demos not in regular use. It’s a form for selling a
product, not for using it. This is design driven by marketing, about making the
sale, not the experience.

Monday, 1 October 2007

On progressive disclosure...

Progressive disclosure is a method of revealing the details of a feature on
an on-demand basis, so that the basic elements of the feature appear by default
while the less used or more advanced elements are hidden. These elements are
usually just a click or two away, so they remain readily available, but they’re
hidden by default to avoid interface clutter for the majority of users who do
not need them.


Robert speaks a lot of sense.

Ratings done right.



I really like this. Star ratings are good if you're in an application such as iTunes, where you're the only user. But on the web, 100 negative ratings could skew an otherwise flawlessly reviewed product.

So this slider gives a really good indication of where the ratings are (all good in that picture). It's how ratings should be done.

I also love Amazon's way of dealing with ratings, below:



Although, I am confused as to why they need to show me the same information twice (see if you can spot it). That's one of the downsides of Amazon - they give you so much information it can be overwhelming.

Thanks David. (via)

Sunday, 30 September 2007

Scrap unnecessary widgets.

I don't like duplicating functionality. I don't need hundreds of ways to resize text. In fact, Command+ or Command- is all I need. Don't want a toolbar for it, and don't need a web application to implement text resize widgets.

I hate interface clutter. If it's not going to be used often, why put it there at all? You can instead use the space to show me something useful.

Moreover, if web applications are essentially duplicating functionality that is built into the browser, our users will expect to see them there. If you design a site with these widgets, your users will expect to see them on all of your sites. Consistency is a good thing.

Search widgets are useful. In fact, I'd even go as far as to say that search widgets are really, the only useful widget on your site. RSS doesn't count. Weather, stocks, currency - you don't need them everywhere. You just need them in one place. I go to XE.com for my currency converter. BBC for weather. I don't need hundreds of other sites telling me the same thing.

I love simple, easy to use, to the point interfaces. Don't confuse me with all these unnecessary things - or I'm gone.

(This is a response to 456 Berea Street's article)

Saturday, 29 September 2007

Don't treat me like an idiot.

Software is a funny thing. Most developers think that humans are idiots, and that they can't be trusted with software. So, they shove in a load of dialog boxes in our faces and expect us to learn to have to click a further button in order to accomplish the task in hand.

In Designing the Obvious, Robert Hoekman JR points out that his trash can doesn't ask him whether or not he wants to put something into it. It's obvious, because slinging a ball of screwed up paper twelve feet across the office is a good sign that you want to dispose of it.

I can just imagine such a trash can designed by Microsoft, in that if any tiny scrap of paper so much as even graced the immediate space above the trash can, the can would suspend the rubbish in mid air, waiting for you to press something on a huge remote somewhere on your desk, just so that it could continue.

That's nonsense, you say. Well, try deleting anything on your Windows machine. The 'Are you sure?' message comes up. Well, am I? Yes, I am sure. That is why I clicked 'Delete'. I am not an idiot. Don't treat me like one.

Windows certainly likes to though. Unplug your Internet connection for a second - and you actually get a message telling you that it's unplugged. Well, thank you Captain Obvious. Plug in a new memory stick and it says 'New Hardware Found'. Obviously. Don't dumb me down, and don't treat me like an idiot.

It's surprisingly worse on the Internet. It's really nice to use such applications like Blogger and Gmail, because they scrap meaningless, modal dialog boxes. This post is being auto saved in case I am stupid enough to close the browser window, and the blog itself was easy to set up.

However, you do get applications that force a load of alert messages onto you because they have no way of preventing deletion otherwise. How about, actually, not deleting the item in the first place, so that I can undo deletion? Come on, this has been in desktop applications since the Stone Age.

This excerpt from ALA is a good example of what not to do in a web application:
In the game Guild Wars, for example, deleting a character requires first
clicking a “delete” button and then typing the name of the character as confirmation. Unfortunately, it doesn’t always work. In particular:


  1. It causes us to concentrate on the unhabitual-task at hand and not on whether we want to be throwing away our work. Thus, the impossible-to-ignore warning is little better than a normal warning: We end up losing our work either way. This (losing our work) is the worst software sin possible.


  2. It is remarkably annoying, and because it always requires our attention, it
    necessarily distracts us from our work (which is the second worst software
    sin).


  3. It is always slower and more work-intensive than a standard warning. Thus, it commits the third worst sin—requiring more work from us than is necessary.

Aza Raskin

Software should have forgiveness built into it. I should be able to undo any action, so that I don't lose my work. I don't want software to get in the way of what I'm doing, and I especially don't want to get frustrated because the site's designer decided that I needed 15 minutes to complete the task, instead of 5.

It's not OK for our users to be mindlessly clicking on OK buttons. We need them to feel empowered, not annoyed. I need to know that I can trust the web with my flaws - and if I make errors, I need to know that I can undo them. And I will only be able to do this once modal dialog boxes are extinguished, and deletion is easily recoverable.

Software that doesn't annoy me is software that is quick. It won't complain when I've just deleted 70 items instead of 7. It will make me feel more productive. Surely this is not hard to accomplish. We should be making applications that halve the time it takes to do a task, not triple it.