Posts Tagged ‘user experience’

Embedded in culture

Something I read a long time ago that comes to mind when I think about engineering team culture is this interview around design at Apple. Specifically, the myth around Apple having the best designers:

I think the biggest misconception is this belief that the reason Apple products turn out to be designed better, and have a better user experience, or are sexier, or whatever … is that they have the best design team in the world, or the best process in the world…
It’s actually the engineering culture, and the way the organization is structured to appreciate and support design. Everybody there is thinking about UX and design, not just the designers. And that’s what makes everything about the product so much better … much more than any individual designer or design team.

[Aside: looking back a bit, it’s worth noting that, more-so in 2014 than now, Apple’s products were viewed as being far superior in design to competitors. Many people I worked with pointed to how something looked or functioned on a Mac or iPhone as the ideal and there was a desire to replicate that aesthetic and experience. Now, in 2024, Apple is still known for good design, but I don’t think they have the same monopoly that they did a decade ago.]

What resonates here is how the concern (for a better user experience, better product, etc.) needs to be embedded within the culture of the team and it’s not something can be be strictly delegated to a certain individual, role or team (and then “thrown over the wall”).

Of course this is maybe not too surprising, within software engineering itself there’s been a need/desire/push to diffuse concerns around operations, security, testing, etc. (and what actually got me thinking about this was actually the interplay between application engineers and security engineers, where application engineers can’t simply “hand off” security concerns).

What webOS did better…

Having recently upgraded from a Palm Pixi to a iPhone 4S, leaving behind webOS for iOS, it’s easy to find many things that are vastly superior on iOS; not surprising, given the superior hardware on the iPhone and the relative maturity of iOS as a platform. However, I find myself missing a few things I’ve become accustomed to with webOS; things I think webOS simply did a better job at.

While both platform alert you to events, webOS also kept notifications stacked on the bottom of the display until you chose to swipe them away.


Integrated Contacts
webOS automatically imported and linked contacts from multiple sources (Facebook, Gmail, etc.) making it fairly simple to manage (or more accurately, not have to manage) an address book.

integrated contacts

While iOS supports multitasking on a technical level, on a UI/UX level the focus is very much centered on one app at a time, as swapping between apps always requires a trip back to the home screen. The webOS process of sliding between cards was not only a slightly faster method to swap between apps but also fairly convenient when it came to glancing at something in another app and then getting back to what you were doing; the scenario that pops into my mind is texting something from a webpage but not remembering it exactly or entirely, and having to swap between the messaging app and the browser.

Also, swiping a card up and off the screen was a fairly elegant way to close it. Exiting apps is perhaps not a big of a deal on an iPhone due to the larger memory pool, but when you do near the memory limit, I’m not sure double tapping the home button, pressing and holding the app icon, and hitting the remove icon is the easiest nor most intuitive action.


SmallChange and LargeChange properties of scrollbars

These properties apply to scrollbar controls in WinForms, but the concepts are pretty universal:

  • SmallChange is the change in value that occurs when you click on a scrollbar’s arrows
  • LargeChange is the change in value that occurs when you click on a scrollbar’s track
  • I had some vague ideas on how to set these values, but this MSDN entry confirmed by suspicions that the values should be set relative to size of the container and not the size of the content.

    User interface guidelines suggest that the SmallChange and LargeChange properties are set relative to the size of the view that the user sees, not to the total size including the unseen part. For example, if you have a picture box with scroll bars displaying a large image, the SmallChange and LargeChange properties should be set relative to the size of the picture box, not to the size of the image.

Making better progress bars

An interesting study I came across a while back, regarding changing the animation of progress bars to alter users’ perception of how long an activity (e.g. a file download) takes to complete. By just changing the animation of the progress bar, an activity can seem 10% faster to users.

… Harrison’s group generated a series of animated progress bars: some pulsated between pale and dark blue at varying speeds, and others had pale blue ripples moving either left or right, also at different rates, as the bar crept forward (see video).

Many participants said that progress bars which pulsated increasingly quickly made the download time seem shorter than those that pulsated increasingly slowly.

A significant number also said downloads were faster when ripples in the progress bars moved to the left rather than to the right.

Note the key phrase, increasingly quickly; the pulsating of the progress bar has to accelerate.

In terms of the ripples, it seems they need to accelerate (I’m assuming, the article wasn’t specific on this point) or decelerate as well. Constant velocity ripples (such as those in OS X progress bars) actually result in a negative effect:

Apple uses left-moving ripples that travel at a constant velocity for progress bars in Mac OS X. However, many of the volunteers in Harrison’s study said that this type of animation appeared slower than one in which the left-moving ripples slowed down as the download neared completion.

Why Google won

I firmly believe that Google rose and dominated the search engine market not necessarily because it provided better search results, but because it was the search engine that provided the simplest, cleanest, and most accessible user interface. I bring this up because I caught this image on reddit (my new addiction) the other day. Here’s a cropped piece of the image,

google vs. yahoo

Oddly enough, while many search engines have now adopted a Google-esque simplicity to their interfaces (Live Search, AltaVista,, etc.), Yahoo seems to have taken the opposite approach, saturating their homepage with more content – news, top searches, weather, links to other Yahoo services, and a sickening amount of ads. I highly doubt this “everything and the kitchen sink” strategy will put Yahoo back on top.

The Initial User Experience: Dashboard vs. Yahoo! Widgets

I recently got a Mac Mini and begun playing around in OS X. One of the first things I stumbled upon is Dashboard, which brings up an overlay displaying widgets, small apps that display things like weather, time, calendar, etc. I thought this was incredibly cool (especially because of the weather widget, as I hate going to and having to type in my zip code every time I want to know what’s happening outside). As a feature it’s very well designed; it looks great, it’s easy to get to, it didn’t pollute my desktop in any way, the information was useful and informative, and in less than a minute I implicitly understood how it worked.

I figured there must be something similar for Windows, if not I was even thinking it might be a fun project to make something similar. I did try Google Desktop a while back, but the experience was not the same, and was definitely not pleasant. I didn’t like that it was essentially a panel (a large one at that) pasted into a corner of my desktop. I like my desktop. I want my stuff on it. I don’t want to cede the real estate to a third-party. In the end, I uninstalled Google Desktop, and was left with an overall negative impression of the product. I haven’t used Vista as much, but the Vista sidebar seems to make the same mistake.

After some searching I found Yahoo! Widgets. It seemed perfect. However, after I installed it, I was disappointed, it looked cool, but it didn’t seem to function like Dashboard at all. After some twiddling I did finally massage it into working akin to Dashboard; however, I been less patient or not as tech savy, I would have quickly uninstalled it and deemed by discovery worthless.

So, what’s the point? The point is pretty simple (and I don’t think I’m breaking new ground here): the initial experience a user has with a piece of software is vitally important and if the developer fails to provide a positive experience to the end-user after setup, the software is a failure (users will simply uninstall it), no matter how cool the interface is, the potential productivity gain, or the hundreds of cool features. My experience with Yahoo! Widgets and Dashboard exemplify this perfectly.

So what’s wrong with Yahoo! Widgets? Technically, I don’t think anything is wrong with it. It seems stable, powerful, has nice features, and the widgets seem cool (personally, I really only cared about the weather and a calendar). However, after installation, it stuck this dock panel on my desktop along with a bunch of widgets. Now, as I already mentioned, I hate things assuming they have the right to pollute my desktop. Ownership is important. So I was not a fan of the dock nor the widgets themselves, which, unlike the dashboard widgets, didn’t fade in and out with an overlay. This was annoying. I wanted my desktop back.

So I went to preferences and found out I could press F8 to active the overlay. Great! (however, I’m going into the Preferences window to actually figure this out – why wasn’t this mentioned sooner). The overlay shows up, kinda disappointed that the taskbar isn’t covered, but I can live with that. I deactive the overlay. damn! the dock and widgets are still stuck on my desktop.

I play around in the Preference window for a while and look at the options for the dock. I discover I can get rid of the dock, that’s good, but I’m thinking this isn’t for me, and about ready to uninstall.

I continue playing around. With the overlay off, I close all the widgets. I accidentally hide one of them. I hit F8. Wait! That’s the effect I wanted! But what did I do? I realize that there are 2 options to get rid of a widget, Close and Hide. Close gets rid of the widget altogether and Hide only show the widget when the overlay is active. Why didn’t I know this, like the F8 key, this was never explained to me (remember me, the end-user, the one using the product). It’s not in the product tour, there’s no tooltip, and I certainly didn’t spot anything in the help.

I’m happy now! I customize the system to show the widgets I want and I hit F8 whenever I want to see them 🙂

So that’s the story. Ultimately, from my experience with both applications, I learned:

  • The desktop belongs to the user, don’t pollute it unless they allow you to. (this might be more of a personal preference than anything else)
  • Present important app-specific information ASAP and make things as intuitive as possible. Avoid having users discover features by reading documentation or going into a settings/preferences window.
  • The initial user experience is important. Don’t fuck it up.
yahoo widgets

I do realize there is a bias here as I was looking for something that functioned like Dashboard, but if the default post-setup environment for Yahoo! Widgets is how the developers see others using their application, that seems totally weird to me because it’s assuming a whole lot of users have so much free space on their desktop that they’d obviously want to stick a bunch of widgets on it. Hmm, I don’t know, maybe I’m wrong and most users do have a lot of free space on their desktop, but my desktop certainly doesn’t fit into this category, and even if it did, I’m not sure I’d want a widget on it (I like my wallpaper).