February 2009 - Posts

The past, present and future of User Experience Design
Tue, Feb 24 2009 3:07 PM

User Experience is actually something much older than the age of digital computers. It’s about how a person uses a tool. In time these tools became more sophisticated and were able to operate on its own. This required a way of human-machine interaction that was new for everybody. Early machines had different interfaces, mostly button-based, and with a limited feedback which wasn’t a big deal because the machines where straightforward, so you could instantly see if it was doing what is was supposed to do.

In the 18th century the first concepts were developed where machines could calculate certain outcomes based on punch cards input. These systems where mechanic, based on gears, an mostly not very stable. And then, in the 19th century, the digital computer was introduced. More buttons and a screen for results & feedback, but only useable by specialized people.

Shortly after, the first globally adapted interface system were introduced. The Command Line Interface that were implemented in the 80s as PC-DOS in the first Personal Computer.

In the meanwhile people were working on a system that eventually drastically changed the way how we would work with a computer. From the 50s people were working on the “mouse”. Eventually in ‘68 this concept was finally ready to be deployed and made the second generation of interfaces possible. The Graphical User Interface. In mid 80s the first operating systems with a graphical user interface, like the MacIntosh OS, AmigaOS, Atari TOS and Windows 1.0, were released.

With the availability of miniaturization, computers were able to become more and more powerful which made improved operating systems with better user interfaces possible. Currently we are still using the same type of user interface. Based upon a graphical representation with using an input-device to control the interface and thus operating the underlying system.

Past of the User Experience Specialist roles

When the digital computer was introduction in mid 80s there was only one role. The programmer. He used to do the project management, architecture, interface design, coding, testing, quality control and user support. Sometimes even some sales.

As most of us now know, this didn’t last. During the 80s and early 90s different new roles and work methods were introduced. This took most of the responsibilities from them, which, unfortunately, were not very much accepted by these first-day developers.

With these new roles also came the separation of the front-end and back-end developers. The final “insult” came when these first group had to take their advice from “user interface designers” and “human factors” professionals, who were usually not software professionals at all. They tended to be people with backgrounds in psychology or human factors. Many, if not most, programmers (especially those who had come to specialize in user interface tools) were used to, and liked, doing user interface design and considered themselves perfectly competent in this area, and were not at all happy to lose control of it. Early usability professionals were usually considered unwelcome interlopers by developers, and were still not well understood (and thus not well supported) by management. It was a tough role in the 80s.

In the 90s the development roles and methodologies had become commonly accepted. Unfortunately this wasn’t applied by what was then called a usability professional, as they still didn’t received a place in the methodologies. They were, like the programmers in the 80s, generalists who did not specialize in any particular usability role and did not have any structured, standard approach.

With the Internet Boom a lot of newcomers entered this branch, which didn’t have these negative feelings because it was all they have had ever known. And in this period also a new roles came. The graphic designer and information architect. And like what happened to the developers during the 80s and early 90s, these usability professionals now needed to share their responsibilities. Eventually these people also learned that as a team they could work far more efficient.

Present of the User Experience Specialist roles

Only recently a new role has been introduced, by what some people will call a “persuasion architect”. This role is meant to focus on the application to see if it connects to the basic purposes. For example for a web-shop this can mean how many people are actually buying, subscribing on the newsletter or using it for support. And how make the site to be found first through search-sites like Google.

With all these roles in the User Experience profession, it still is quite difficult to integrate within the existing development methodologies. Just as programmers had to do 20 years ago, user experience professionals need to embrace other specializations within our field and learn how to work with them most effectively. Part of the key to this is defining and adopting a development methodology that clearly incorporates all these skill sets in a balanced way.

Programmers have gone through a lot of changes and had to adapt in many ways since the 60s. But they are still considered indispensable to software development. While the usability profession has made a lot of progress and inroads in the industry over the past 25 years, they still are not considered integral and indispensable.

But this will come with time as many people do now understand that this will actually be needed in the future need for applications. I also am working on the key for integrating User Experience Design within the existing software developing methodologies. This especially on the Application Lifecycle Management method that we (Inter Access) are using within our cooperation. Read the blog post of my colleague Edward Bakker for more of this.

What will the future bring

I can’t predict what the future will bring, but I do know that we are trying to change to a new form of human-machine interaction. First we had CLI, then came GUI, and at present we are slowly transitioning to NUI, or Natural User Interface. In the future eventually the next step will be OUI, or Organic User Interface.

The NUI is actually not a replacement for the GUI, but more a way to replace the current input devices we now use for controlling the system to a more natural one. One way to do this is by direct touch.

I'm on the microsoft surfaceMicrosoft Surface is a device that is using a Natural User Interface to interact with the system. Yesterday I was allowed to actually touch and play a bit with this, still quite new technique.

To work with a device as such requires a completely different approach then users are used to today. I can’t deny that I was thrilled by it and imagined all kind of cool ways for using it. But it’s still a very long way before real business solutions will be developed based on a systems like this.

I think that a lot of User Experience Designers will have a hard time changing from the GUI stage to NUI. It will require to think in a different way. The experience has changed.

Perhaps with the introduction of OUI in combination with NUI, the GUI might eventually be able to be replaced. Not completely as there will probable always be a need for graphical feedback.

On the other hand, maybe there is no need for the waiting for OUI, as Microsoft Office Labs have released their ideas of how NUI can be used in real life on a day-to-day basis. They did this in a couple of video’s they released during MIX08. There are five of them and called Microsoft’s Future Vision.

This a fantastic tale about how it all can be, but it might eventually be what User Experience Designers are working on in the future. Making interaction naturally.

I know I certainly wouldn’t mind working on things like this.

*edit replaced the Soap-box video’s to links to Vimeo because they didn’t play in the blog post.

Good User Experience 101
Tue, Feb 17 2009 1:13 PM

This week I will give some basic practical tips and information when trying to create a good User Experience for your application. You can elevate this to the level required for the project, but on this post I want to keep it basic. If you remember the following guidelines, you will create a better user experience.

  1. Pretend to be the application user

    Maybe you could come up with this yourself, but if you want to make sure your users will fully benefit of your work, you must sometimes step aside, and start thinking as the actually user. Whether you’re a project manager, developer, designer or fulfill any other role, it is very important to start “using” your application as the user. Just walk trough every basic scenario in their position.

    • Are they behind a desk, or on the road.
    • How long are they able to stay focused on the application, or are they frequently disturbed.
    • How many steps do they have to take, and aren’t these too complex to comprehend. Maybe more steps, but with less fields, or visa versa.
    • Do they think it’s logical that you first have to resolve one “order” before they can open the next. Or do they work on multiple items simultaneously.
    • What does the “an error has occurred, please contact the administrator!” message mean to my work. Is it saved, or is it lost. What is the problem, and how can I work my way around it.
    • Whow, that’s a lot of fields. I’m not feeling like doing all that now, maybe later…
    • Where in the application am I, and where do I go from here.
    • Why can’t you accept it, what is wrong with it, where is it wrong, and why…
    • Oh no, now i can start all over again just because i forgot to fill in the entry date. Forget it, I'm not going to do it again.
    • I can’t remember how to get to that screen where i could find all the items currently available.
    • Does this button mean saving this, or everything. Does it close it. Is it ready now, or do i still have to do something with it.
    • Why do i have to do all this over again, all these questions are already known.
    • Can is safely close the application now?
    • etc…

    In their point-of-view sometimes things doesn’t seem to be that logical as what you thought when you first designed it. They are not in service of your app, the app must help them do their work better. It must take your user by the hand, and lead them trough all the actions needed for doing their job. Try to pretend you’re that user, and forget everything you’ve learned while on the project, and see if the application does help your users, or only makes their work more difficult.

    Sometimes you can’t escape complex situations. Your users may then not fully understand the application. But they do understand their work. So if they match closely, complex situations will be able to explain themselves through the way your users do their work.

    A thing to remember is that you always have to provide feedback. In one way or another, let the user know that his action did something. If it is busy or ready or completed. Show what elements are updated. Did something fail, and why. etc…
    Make sure that this feedback is understandable. The user must know what it means and how it is connected to the actions he/she just did. This way the user gets the feeling it is in “control” of the application.

    You may want to take this “pretending” to the next level, where you’ll test the scenario’s with prototyping and user-tests. Because this post is a “101” I will skip this subject for now.

  2. What is the application trying to achieve

    In addition to think as the actually user, it is also a good thing to remember why you are actually building the application. One of the statements I use for implementing UX in a project is:

    User Experience Design is necessary in every project because it is the only way to achieve the purpose - working quicker, more efficient and cheaper - of the application.

    If you are working on a non-commercial application, you can let the “cheaper” part out, but nonetheless, quick and efficient still applies. The application must be used to support the user doing a certain task. And you want him to do this as quick and efficient as possible.

    To reach this goal, you have to think if the way you had in mind for a certain functionality is the quickest and most efficient way of doing that. When these two collide, I personally prefer efficient before quickest, because indirect that will speed up the use of the entire application. And with quick and efficient reached, cheaper often comes automatically.

    When you keep this in mind every time you describe, design, develop or implement a functionality, you are really working towards a good user experience for your application.

  3. Rules of engagement

    Maybe this step is a little too much for a “101” post, but I think it doesn’t hurt to mention it. This is actually something that can be used for larger projects (multiple designers/developers without a short line of communication). In these situations you can use certain “rules” for user experience design. Everybody who works in the project have to obey these rules. Making decisions about functionality and presenting them will become less difficult. A good example of this, is the project team which developed Office 2007. There they called these rules Design Tenets. And the rules they made where these:

    • A person’s focus should be on their content, not on the UI. Help people work without interference.
    • Reduce the number of choices presented at any given time.
    • Increase efficiency.
    • Embrace consistency, but not homogeneity.
    • Give features a permanent home. Prefer consistent-location UI over “smart” UI.
    • Straightforward is better than clever.

    Jensen Harris of Microsoft actually gave a pretty good presentation about using these tenets in a MIX08 presentation which can be viewed here (he starts on this subject at 00:33:00).

    I will lift out the example he gave about using tenets. It’s about the paperclip assistant “Clippy” which occurred in previous versions of the office-suite. Because of the tenet “Straightforward is better than clever” it was impossible to re-implement such a solution in Office 2007.

    You can actually re-use the tenets used by the office team in your own project. They pretty much can be applied to every application that must be build. And when you do and they are followed, i think your application will have a great user experience. Although I do understand that this may be a little too much for the smaller projects.

So briefly, it shouldn’t take a specialist to improve the user experience of your application. Just try to think how your users will work with it, and why you are making it in the first place. If this will be the base of your work, I am sure that you will create something beautiful that your users will love to use.

p.s. In a little addition of user-friendliness, let the system do the talking when it comes to a 404.

Why is User Experience Design important
Tue, Feb 10 2009 1:36 PM

This question is asked regularly, by management, sales, development, and other people that are often responsible for deciding if UX will actively be part of the project. And without someone who actually has some experience with it, this question might be difficult to be answered. And because it really is important, i will try to provide some answers.alm

The answers I provide will be based on projects using Application Lifecycle Management which basically means that you have three parts. The first is Business, where you define the requirements. The second is Development, where you build and test the application. And the third is Operations, where the application is used and supported. From the last you can go back to business and repeat the cycle, or you can end the use of the application (end-of-life).

 

Management

First an answer for the management. If you want to convince them for implementing UX in the project, they will have to see that it is a value-added asset. And this is why:

  • Improved requirements
    If you want to use UX in your project, you must use this from the very early stage of your project. By adding Wireframes, Interface design, Interaction design, Rapid prototyping and User testing. You can better serve your client because now you can show him what can be expected. This is indeed an extra investment and extends the requirement period, but if you do this right, it will be worth it right when you enter the development stage. Development time will be decreased and with it the development cost, and it will bring you to the next reason.
  • Faster time-to-market
    Because you have significant increased the quality of your documentation, the development time of the application will be decreased. You will experience less last-minute changes and unseen flaws. Your testing will be faster and better because of the improved documentation. With all this you can deliver your application much faster. In fact, if your project team gets more experienced of working this way, you will compensate the extra time you’ve invested in the requirement period.
  • Increased value per user
    Once the application is deployed, the users of it will be able to work better, faster en with less mistakes because the interface is specifically designed to their needs and way of working. New employees will need less time to learn the application as a good user interface will explain itself. Thus overall you can see that the output per user increases with the implementation of a good User Experience Design.
  • Extended application life
    The life of an application is also increased. Applications with no interface- and user experience design often end up to be replaced earlier than applications which have both designs. This because the application does not function as well as expected. Users will complain about this and therefore will ask for something that will work better. With enough complains, the application will be replaced. With a good UX the complains will be reduced to a minimum so it stays in business for a longer amount of time before a replacement is needed.

 

Development

Why is using UX better for development? First of all, you start development with a much better functional and technical design. You have less last-minute changes and unseen flaws, so the time needed for building will be decreased. I think every developer would very much like the idea that he doesn’t have to do things twice.

Ideality you would like to let the interface be build by someone who is a specialist in designing and implementing interfaces. When working with WPF / Silverlight, I often see three roles. A designer, a developer and the one who stands in between, who’s called an Integrator. I will tell more about these roles in future blog-posts.

It is proven that working this way in development, where you treat front- and backend separate, has resulted in better applications and happier people that were involved. That alone is a very good reason for using UX.

 

Customer

And the final part, why UX is better for the customer. Here are some reasons:

  • Visual feedback
    The most important, i think, is the way how you communicate with your client. Because you not only will have text for describing his wishes, he can actually see what it will be once it’s finished. By drawing wireframes, making an interaction and interface design, prototyping suggested functionality, you allow him to get a far better impression then with text alone. And because of that, he also can see and explain why and where things needs to be changed. If you are prototyping, you can also test if his request works. Prototyping will also remove assumptions, which is always good when trying to work you way to a solution.
  • Increased value per user
    As i explained in the management part above, the application will increase the productivity of your users. In the perfect world, you will actually build an application that will work for the user, instead of, what most users experience now, that they work for the system. When you achieve that kind of application, you will dramatically increase the amount of work a user can generate for the customer. But with a good UX, you can get pretty close.

 

I hope this provides some answers and a bit more insight in why User Experience Design actually is so important. Without it, the most impressive applications can fail in real live, because no-one knows how to use it.

Let me introduce myself
Wed, Feb 4 2009 4:10 PM

Who am I? Well, i'm Andries van der Meulen. Now 28 years, live in Amersfoort, The Netherlands. I bought a little apartment there which I completely reconstructed in 2007/2008. For those interested, i kept a photo-blog in Dutch on this location.

And the more interesting part is why you should keep following my blog. I am going to write about User Experience Design, Interaction and Graphical Design. Integration with Application Lifecycle Management, etc. Why? It's not like this subject is entirely new, but I noticed that it is highly underrated in a lot of development processes. And that's really not good.

So besides that i try to explain why these subjects are so important, I also blog about my experiences as an User Experience Specialist.

Stay tuned, it's gonna be interesting.