User Interface Design and Usability

I attended a presentation last night by Alistair Cockburn. He is one of the authors of the agile manifesto and the presentation covered some of his latest thoughts on agile. Here is a summary of the points that I found most interesting.
Software engineering is a poorly chosen term. Software design and development is really a craft rather than an engineering discipline. There can't be a single, optimal process because software is developed by people and people are different. There are different motives, cultures, objectives, personalities, etc. that all influence how a project will evolve.
Agile is not so much a process as a set of techniques that should be tailored to fit the situation.
You can never get it exactly right in software development, but you should be constantly learning and improving. Waterfall methods are late learning. At the end of a project, you recognize things you have done wrong and that you may be able to improve next release. With agile, learning and adjustments happen throughout the process.
Process cannot fix all problems. For example, if two of the key people on a project hate each other, no process in the world will ensure that there is good communication and cooperation between them.
Large projects have large communication penalties. The more people you must communicate with, the more time you spend communicating and the less writing code or creating other deliverables. If you have two developers in a room working on a project, communication is easy and efficient. As you increase the number of people or the distance between them, communication becomes more difficult.
Paper is the most common form of project documentation, but also the least efficient. The most efficient form of communication is two people talking face to face with a whiteboard.
Distance is one of the factors that effects process. On one project Alistair was involved in, the UI designers were in Norway and the developers in China. The developers complained that they could not work efficiently because the UI designers kept changing the design throughout the iteration. The UI designers took a trip to China and then the process worked fine. They were still changing the UI design throughout the iteration, but, because they were in the same building and the same time zone, the changes could be communicated immediately and the reasons for the changes were clear.
Transparency effects productivity. The more everyone knows what everyone else is doing, the better coordinated they will all be.
Look for the bottlenecks in a project. Many people try to eliminate bottlenecks, but that is impossible. If you remove one bottleneck, another point becomes the new bottleneck. Some are difficult to eliminate. For example, maybe one job optimally requires 1.5 people, but you can't efficiently assign a fractional person. It is best to just accept that there will be bottlenecks and to make sure the bottleneck does not slow the project. For example, if database design is the bottleneck, make sure that designer has everything they need when they need it. In other parts of the process, inefficiency is not necessarily a bad thing. Areas that are not the bottleneck can "waste" some time without affecting the end date or success of the project. One way to use the extra time for people outside the bottleneck is to make your best guess and charge ahead. One one project Alistair was involved in, there were two options (A and B) and much debate and research was needed to make a decision. While that was going on, he told the developers to implement B. There was a 50% chance they would guess right. If they were right, time would be saved. If they guessed wrong, they would be no worse of than if they sat on their hands waiting for a decision and in all likelihood they would at least learn some things. When the decision came back to do B, it was already completed.
You should do knowledge acquisition tasks early in a project to reduce risk. Do the things you aren't sure how to do first. The things you know how to do you can estimate with greater confidence and they can be left to later in the project with little risk of delaying the end date.
You need to understand the business to understand how to optimize the process. When Alistair first starting to work with defense contractors, he couldn't understand why they would move key people off a project in the middle. This decreased the quality of the outcome. Most companies make money by creating the best product they can. Why purposely hurt a project by removing key people at a critical time? He came to understand that defense contractors make their money by winning contracts. They need their A team to do that. When the project is underway, the A team is better used to win the next contract while letting the B team deliver on the current one.
More information on Alistair's work is available at http://alistair.cockburn.us/index.php/Main_Page
http://2008.sxsw.com/interactive/
I attended the SXSW Interactive conference in Austin, TX March 8-11. Here are a few notes from the sessions I attended that may be of interest.


Session: AJAX and Flash Mistakes
- Showed examples of common mistakes made when designing rich client applications and websites
- A copy of the presentation is available at http://www.slideshare.net/jboutelle
- Recommends the book "AJAX Design Patterns"
- Minimize the use of animation. Since rich client technologies support many types of animation, designers tend to overuse it making the app very busy and confusing.
- AJAX messes up website metrics. Google Analytics will be adding events to address this.
- Flash gives you access to system resources such as speakers and the microphone.
- One of the main advantages of rich client interfaces are to make the UI more responsive and efficient to use. One way to take advantage of this is to display information in place and reduce the number of pages the user must navigate through.
Session: 10 Things We've Learned at 37 Signals
- Err on the side of simple. In addition to making your product usable, you should limit the number of features. Provide only the most important and frequently used features. This simplicity makes the product easy to develop, easy to support, and easy to use. Let someone else built the big complicated products for the small percentage of customers who need that complexity.
- Target areas with little competition. Big companies typically aren't interested in small markets so they are underserved.
- 37 Signals has over a million customers for their simple, low feature products like Basecamp, Backpack, Highrise, and Campfire.
- Provide a great work environment and you will be able to attract great people, retain them, and motivate them.
- Keep your product release cycle short. People are most productive when working on something new and exciting. They lose enthusiasm on long projects.
- Build by sharing. Use and contribute to open source. Find ways to get your customers involved in developing your products. You gain more by sharing than you would by trying to keep things secret.
- Interruption is the enemy of productivity. At 37 Signals, they encourage employees to work as if they are remote even if they are in the same office. For example, send email rather than hold a meeting. This reduces interruptions and helps to document decisions. Four hours uninterrupted is far more product than the same amount of time broken into 15 minutes chunks between interruptions.
- Be responsive to your customers. If you solve a problem for a customer, they will typically be more satisfied than customers who never had a problem.
- Celebrate little launches. Morale feeds progress.
- Make lots of tiny decisions. If you make tiny decisions, you don't make big mistakes.
- Focus on the things that matter and feel free to ignore the rest.
Session: Social Influence Marketing
- Know how your customers think and design your website accordingly. For example, buying furniture typically involves comparing multiple products and fabrics and getting opinions from your spouse and perhaps friends or relatives. Most furniture websites are designed as if they think one person just looks at a couch and immediately buys it.
- Customers today are more influenced by social factors than by brands.
- Customer reviews are very important to purchase decisions. People look at sites like epinions to see what the experiences of others have been before making a purchase.
- It is wise to let customers get this information on your website rather than go somewhere else. For example, the Sheraton hotel website lets customers post reviews of their experiences at a location. Companies should not fear this unless they don't have confidence in their products.
- Everyone in a company should be talking to customers. Not just the marketing folks. Design teams, in particular, need to be getting customer requirements and feedback in order to produce better designs.
- Communication needs to be two-way even on your website. A company website is not just a way to publish, but a way to hold a conversation between the company and its customers.
Session: Life After iPhone
- The iPhone has dramatically changed the mobile device landscape.
- It was previously very difficult to create mobile apps because there were so many devices with so many different screen resolutions running so many different browsers.
- iPhone is one of the first mobile devices to provide a full featured browser. Most any website designed for a desktop client will run fine on an iPhone although it is also possible to optimize websites and web apps specifically for the iPhone.
- A VC fund (iFund) is offering $100 million to fund development of iPhone apps.
- The iPhone is an example of a disruptive device. It doesn't follow existing standards of interaction and thus requires fresh thinking. Design groups may need to change their deliverables. They will need to do more experimentation and prototyping. More disruptive devices are likely to follow.
Miscellaneous Musings
- After a big dip in attendance in the early 90s, conference attendance continues to grow.
- There have always been more Mac than Windows laptops at the conference, but this year the ratio was much more lopsided. It looked to me to be about 90% Macs. This seems like an indication of how much Apple has captured the hearts (and pocketbooks) of the design community.
- Lots more small mobile devies too, particularly iPhones. Many people seem to be finding a small mobile device to be a viable alternative to a laptop now for things like taking notes at a conference.
- In several sessions, speakers talked about how their websites became businesses by accident. They would start something as a hobby or from personal need and it suddenly took off. There still seems to be plenty of opportunity on the web, but it is difficult to predict what will be successful.
There has been a discussion on one of the usability mailing lists recently about the lack of usability testing at Apple. Apparently their desire for secrecy when developing new products causes them to do little or no usability testing. Despite that, Apple's products generally have a great reputation for usability. I think there are several reasons for this:
- Ease of use is part of the corporate culture. Each and every person on the development team strives to design a product which is usable.
- They must have a development process that accurately evaluates user needs and creates products that successfully address those needs.
- They prototype and evaluate designs continually throughout the development process. It may not be a formal usability test with external users, but they do conduct informal usability evaluations.
- They observe what happens after the product is released and correct problems in subsequent versions.
Apparently the iPod Touch is so easy to use that even a dog can use it ;-) http://gizmodo.com/gadgets/ipod/even-a-dog-can-scroll-through-pics-on-an-ipod-touch-309847.php
I read the annual "100 best companies to work for" issue of Fortune magazine. One article made the point that providing a great work environment is not just a nice thing to do, but it pays off financially. It allows a company to attract the best workers, keeps them motivated and productive, and reduces turnover. It surprises me how few companies understand this. I hear so many stories from my friends about companies where minimizing cost takes precedence over all else.
Watching the Super Bowl, I was pleased to see an ETrade ad that emphasized usability: http://www.spike.com/video/2938285/collection/25701/minisite/superbowl
The 2008 version of the bad usability calendar is now available at: http://www.badusability.com/
Google labs has issued an open invitation to try some of their new ideas and provide feedback. Sort of a public usability test. Interesting idea. http://www.google.com/experimental/index.html
Here is a nice set of design templates from the Information Architecture Institute that I ran across recently: http://www.iainstitute.org/tools/
Is it just me, or do you think technology is becoming a little impersonal sometimes? http://www.washingtonpost.com/wp-dyn/content/article/2008/01/14/AR2008011402011.html?wpisrc=newsletter
Here is an interesting comparison of recent Apple designs to some from Braun in the 1960s. http://gizmodo.com/343641/1960s-braun-products-hold-the-secrets-to-apples-future
US News listed usability specialist as one of the best careers for 2008: http://www.usnews.com/features/business/best-careers/best-careers-2008.html
I attended the Consumer Electronics Show (CES) in Las Vegas last week. It is a huge trade show where the latest electronics from around the world are on display. Since the demise of Comdex, CES has also included displays from some of the major computer and software companies. Here are a few of the user interface related things I saw at the show.
Gestural Interfaces
3DV Systems showed games and media applications that the user controls through hand gestures. A camera recognizes the gestures so the user does not need to hold a controller or wear gloves. Some applications required that the user learn specific gestures such as to control menus and make selections. Others were free form and natural such as making boxing motions to use a boxing videogame.
Toshiba demonstrated a DVD player where the user could control playback by pointing a finger in the direction they wanted to video to advance or putting their palm up in the universal sign for stop.
Microsoft showed Surface – a computer built into a table with a multi-touch interface.
CNN has an article discussing some of these products at http://www.cnn.com/2008/TECH/01/10/ces.pcwii.ap/index.html
A somewhat related area is devices that sense the presence of a user and react to it. For example, iTouchless demonstrated a trash can that opens when you move your hand over it or throw something at it.



Large Displays
Displays are getting larger every year. Much of this is being driven by the HDTV market, but many of these TVs can also be used as computer monitors. The largest this year was a 150 inch plasma TV from Panasonic.
There is also a trend toward connecting multiple displays together to provide a larger virtual workspace. Crown Trading Systems demonstrated a stock trading application that utilizes 16 monitors driven from a single computer.

Programmable Keyboards
Several companies showed programmable keyboards where tiny displays were built into the keytops. This allows the icons or labels on the keys to be dynamically reassigned. I worked on banking applications at IBM where we dramatically improved productivity for certain applications by creating custom keyboards optimized for the tasks the user would perform. These programmable keyboards hold the potential to customize the keyboard dynamically for multiple applications.

Biometrics
Biometric devices such as thumbprint readers and iris scanners are being built into some computers. Some organizations are requiring this. For example, I have a friend who does software development at a large bank. They use an iris scanner for access to the facility because is much more secure than ID cards, passwords, etc.

Haptics
Delphi had some good examples of haptic controls. They have developed controls which provide haptic (touch) feedback when the user operates them to, for example, control the radio or climate controls in a car or change what is shown on the instrument panel. Haptic feedback helps the user make changes without having to take their eyes off the road. The Delphi system allows the user to change the nature of the haptic feedback to whatever an individual user prefers or finds most effective.
Many game systems also had haptic controllers that give the user feedback on what is happening in the game.

Ambient Devices
The Ambient Orb has been around for a couple of years now. It is an internet connected device that glows in different colors to indicate changes in data such as stock prices or the weather.
These devices are now being built into more things, such as an umbrella where the handle glows to inform the user when rain is predicted and they should take the umbrella with them. The devices are also being expanded to provide feedback through more than one indicator. A whimsical example is the iBuddy. It is an angel-like figure designed to be used with instant messaging. Its body glows to indicate when a friend is online and the wings flap when you receive a message.

Robots
Many robots in a wide variety of forms where on display at the show. Some are very sophisticated with the ability to move, to avoid obstacles, to grab and manipulate objects and to connect to the internet. One salesman told me he has programmed his robot to come into his bedroom in the morning and wake him up by singing, then move to his children’s rooms and wake them. It then comes to the kitchen to read him the news and weather while he has breakfast.


As the computer era began, Thomas Watson Sr. (former CEO of IBM) is quoted as predicting there would be worldwide demand for about 5 computers. He failed to foresee how small and inexpensive computers would become and the many new uses that would be found for them.
Today, computers are all around us. Not only the laptops and desktop systems we all recognize as computers, but also imbedded in devices such as cars, microwave ovens, televisions, etc. I think we are about to see computers become imbedded in nearly everything. An interesting example I ran across today is a computer in an umbrella. It monitors the weather forecast and the handle glows to let you know that rain is expected and you should take the umbrella out with you. http://www.ambientdevices.com/products/umbrella.html
If these products are well designed and easy to use, they will make our lives easier. If they are complicated and unreliable, they will just create more work for us.
I'll be attending the Consumer Electronics Show next week and will report back here on the most interesting things I see there.
I recently attended a presentation where someone from Dell showed how they are using Second Life to connect with their customers. They have islands for sales presentations, technical support, building and ordering a PC, and a recreation of Michael Dell's dorm room where the company was started. It is interesting to see so many new ways that companies are reaching out to create a dialog with their customers and to reach new audiences of potential customers.
![]()
In the web 1.0 world, and earlier, companies had to make a specific effort to reach customers and they seldom communicated enough. With web 2.0, customer feedback can be an integral part of websites and products. Often, this feedback is public. So customers are not only relating their needs and experiences with the product, but also reacting to the feedback from other customers. This gives the development team much better information about what customers need and want. It can also increase the customers' commitment to the product as they invest time and energy into improving it and see this result in the product better meeting their needs.
I recently attended the Gartner ITxpo conference where a few hundred enterprise software vendors demoed their applications. I was struck by how little UI innovation is happening right now in enterprise applications compared to consumer applications. In the consumer space, there are new operating systems such as Apple's Leopard, software for handheld devices such as the iPhone, web based applications like Google Apps, etc. that have many innovative UI features. This got me thinking about the reasons that UI innovation and ease of use is lagging in enterprise applications.
I think one reason is that, for enterprise software, the buyer is often a different person than the user. The user may care about ease of use, but the buyer is more likely to be shopping for the lowest price or the longest list of features. It is tempting for software developers to give higher priority to the desires of the buyer. The buyer may also be impressed by flashy visuals while the user will be more concerned about whether the software helps them accomplish their tasks and is efficient to use. For consumer software, it is more typical for the buyer and the user to be the same person.
A second reason is that enterprise software seldom gets critiqued the way that consumer software does. You can't just pick up PC Magazine and find a comparative review of enterprise software products. Feedback and open competition are important factors in the evolutionary improvement of products. Khoi Vinh of the New York Times discusses this in his blog at http://www.subtraction.com/archives/2007/1019_if_it_looks_.php
A third reason is that enterprise software is often designed for too many different types of users with different skill sets and different needs. After all, the more users the software is designed for, the more seats you can sell the customer. Trying to be many different things to many different people, however, can mean it doesn't meet the needs of any one user very well. In software as in clothing, one size fits all just doesn't work very well.
A fourth reason is the attitude that the problems to be solved by enterprise software are hard therefore the product must be hard to use. It is true that the problems to solve may sometimes be hard, but too often this is used an an excuse not to try to simplify the UI. Even if it can't be made easy, it can always be made easier.
A fifth reason is that the needs of a single customer can have undue influence on the design. If a consumer product has a million users, the manufacturer would not consider changing the design to meet the needs of a single customer. They design for the majority. With enterprise software, the number of customers is much more limited and, if Megacorp who buys a million dollars worth of your product per year wants a change, you typically make it even if that change is not needed by any other customer. Those changes can add up and over, time the product can become a little of this and a little of that like Frankenstein's monster.
For a sampling of some of the complaints people have about enterprise software, check out the article "Why Enterprise Software Sucks" at http://www.37signals.com/svn/posts/669-why-enterprise-software-sucks and look at all the comments.
Enterprise software doesn't have to suck though. These are all solvable problems. You just need to be aware of the pitfalls in order to avoid them.
If you have other thoughts on the usability of enterprise software or examples of particularly good or bad products, let me know in your responses to this blog.
The Apple iPhone is available now and has been getting lots of great press for its innovative user interface. I attended the recent iPhoneDevCamp in San Francisco http://barcamp.org/iPhoneDevCamp with my coworkers Eddie Chen and John Cahill (with remote support from our visual designers Molly Barksdale and Donna Brown).
We wanted to explore the feasibility of taking one of our enterprise apps designed for larger systems and scaling it down to run on a small mobile device like the iPhone. We investigated changes needed to the UI to be appropriate for a small display, utilizing the multi-touch interaction style of the iPhone, and to see how hard or easy development is for the iPhone.
The application we chose for this is called BMC Service Request Management http://www.bmc.com/products/proddocview/0,2832,19052_0_77980702_148142,00.html . It allows anyone in a company to request a request an IT or other business service such as resetting a password, or fixing a connectivity issue. We pared this application down to the basic features that a customer would be most likely to want on a mobile device – the ability to recreate a request and to track the status of existing requests.
The iPhone turned out to be surprisingly easy to develop for. It is similar to creating a web application running on the Safari browser. There is little iPhone specific coding required.
The Dev Camp lasted 48 hours from 6 PM on a Friday night to 6 PM on Sunday night. There were almost 400 developers in attendance and it was a fun and cooperative environment with lots of talented and creative people doing interesting things and always willing to help others. We were able to put our application together and have it ready for the demo session Sunday afternoon. A video of our demo is available at http://blip.tv/file/306971


I have come across several things lately that I though would be interesting to mention in the blog. Since none of them are long enough to warrant a blog entry by themselves, I have collected them together into this set I'll call Random Thoughts.
David Pogue at the New York Times wrote an interesting article about the problems he had installing and configuring a NetGear wireless adapter. You can read it at http://www.nytimes.com/2007/04/12/technology/12pogue-email.html?_r=2&oref=slogin&oref=slogin so I won't repeat it here, but let's just say that it proved to be very difficult even for a guy like David who earns his living as a technology reviewer. There are so many computer products that are waaay too complex to install and configure. Companies will put lots of effort into designing an elegant product then slap together an install at the last minute and push it out the door. This makes no sense to me. Any time and money they save on creating a quick and dirty install is lost many times over in support costs, returns and lost sales. If a customer can't install the product then it is of no use to them. The same degree of care in design, development and testing that is done for the product needs to be done for the install.
Airlines have always struck me as one of the least customer centric industries. "Freedom seating" is a new proposal to cram even more people into an airplane. See http://www.engadget.com/2007/04/17/freedom-seating-concept-packs-even-more-bodies-onto-the-plane/ . Let's hope this is an idea that doesn't fly.
The web is a great communication tool. Some people document their whole life on their blog. I knew it was only a matter of time until someone put themselves on the web live 24 hours per day. Check out http://www.justin.tv/
I mentioned multi-touch interaction a few months ago, but I recently came across a video that provides a more impressive demonstration of it - http://www.freshcreation.nl/comments.php?id=973_0_1_0_C . It reminds me of the futuristic UI Tom Cruise used in the film Minority Report, but it is here now and working. I have seen the future and it looks like fun!
Technique for quickly prototyping a website: http://noonebelongsheremorethanyou.com/ . This one is amusing, but actually does have some practical value. When I worked for a startup company and was under extremely short deadlines, I actually photographed my whiteboard and put those pictures in a spec for the developers. I saved enough time to have the luxury of sleeping a fews hours most nights.
The bad usability calendar: http://www.iallenkelhet.no/bad-usability-calendar-2007-is-here . It illustrates design mistakes.
Using real-time 3d visualization techniques: http://infosthetics.com/archives/2007/04/netcosm_3d_network_monitoring_world.html .
Advances in the video capabilities of PC and the latest versions of the major operating systems are providing greater opportunities for use of 3d graphics. One way this is being applied is to create user interfaces where the visuals and the interaction style are modeled on the way we interact with objects in the real world. Check out this 3d book. To turn pages, use your mouse to drag from one of the corners.
http://demo.quietlyscheming.com/book/Anatomy.html

In the mid-90s, I was part of a team at IBM that developed the RealThings interaction style at IBM. http://www-03.ibm.com/easy/page/581 It would have been the basis for the next generation of OS/2, if that operating system had survived.


