Saturday, December 26, 2009

Forgiveness

While chatting with one of the interaction architects at work, he brought upon a topic I have to agree with. Users are very much willing to "forgive" usability mistakes under certain circumstances. For example, when Apple came out with the "puck mouse" back in the late 90s, advanced computer users hated it. Whenever a user placed their hand down on the mouse, they would need to stop working and look at the mouse in order to determine the orientation.

Round mice are a design flaw.

However, Apple users being the enthusiasts they are, willingly forgave Apple because they have a lot of appreciation for the brand. I find this to be a common theme. People are willing to overlook and forgive mistakes when there is a pre-existing emotional attachment to the product or brand. iPhone's initial lack of MMS? Apple iTV? Forgiving is what Apple users do.

Friday, December 11, 2009

Feeds

When I was first introduced to RSS feeds, the purpose of it didn't make any sense to me. At the time, feed readers would essentially grab the feed and display the content. Each site had their own feed so even if I were to use a feed reader, I'd still need to go through 10 separate feeds to read my news. RSS never solved the issue with aggregation. In order to stay alive, they should have done two things:

  1. A unified tagging scheme. Every website had their own way of producing RSS feeds and it was completely unnecessary. Unify the code!
  2. Timestamping. Rather than creating an ambiguous date/time scheme, have all RSS carry a GMT stamp so that the client can determine the relative time.

These two things would have given users the ability to aggregate their feeds chronologically because for them to do this would have meant users could have gone to one place to get their news; they wouldn't need to click on 20 different "feed" buttons from a feed reader. And do you know what an aggregated feed reader that sorts its news postings chronologically? Twitter.

Wednesday, November 25, 2009

Limitations and Guidelines

I've been working on a project where one of the personal goals I have set for myself is to try and maintain a consistent user experience. I'm well aware that "user experience" is often used quite loosely and if I were to ask a dozen people, I'd receive a dozen different answers. Regardless, I do think it's necessary to bring to light some of the things that have been surfacing in my head lately about online software development.

I'll first start by saying that I feel it's always necessary to maintain standards. Just as much as the iPhone has a consistent "swiping" animation, these visual aids --whether they're animation, behavioural or even just an underline on a text link-- need consistency. A user should be able to predict what happens when a cursor hovers over a button or when it is clicked. Intuitive design requires a level of predictability.

Even though the creative team has been rather reluctant with setting "limitations" to creativity, I've been trying to set guidelines. These guidelines are rudimentary at best, but they include standards for CSS, animation and behaviours on a per-project basis. Perhaps this may prove to hinder our designers, but I can't comprehend how ten different button rollover animations will help the end-user other than confuse them.

Friday, November 13, 2009

Fonts

An interesting thing occurred just now. I wandered onto a Flash-based website and when I was about to start browsing, Mac OS X displayed a warning telling me that the application (Adobe Flash) was trying to access a specific font in my system. I'm conflicted. In terms of security, this feature is great. Yet in terms of usability, I think this is horrible.

This is the hypocrite in me speaking. I absolutely love the security features that Mac OS X has and have no reservations in tending to a few additional burdens provided that they are required. However, if I were a Flash developers with the intention of building an online Flash application, it would be upsetting to know that a portion of my audience base would get a security warning concerning them about a particular font.

Tuesday, November 3, 2009

iPhone multitasking

I'm constantly ridiculing friends and coworkers over the fact that their iPhone doesn't support multitasking. Can you adequately keep an instant messaging application consistently "on" with the iPhone? No, at least not easily. Yet even though I'll callously joke about it, I do agree with Apple's business decision on locking out the feature.

On a purely technical level, allowing the iPhone to support multitasking means the possibility of applications being "on" all the time. Poorly developed apps with memory leaks will consume the phone's memory after prolonged usage, causing the OS itself to become unstable and the phones to be unreliable. The app store fuels this problem in that a lot of the popular apps are not built by Apple.

By supporting multitasking, there is a high degree of risk for these phones to crash unless adequate quality assurance is made. What happens without it? When a phone is mysteriously restarting, will a normal cell phone user understand that the third-party app is the source of the problem? Or will these users just immediately blame Apple for a faulty product?

In terms of branding, Apple's products have never been about being a highly-configurable, feature-rich workhorse. Their products have constantly been revered as devices that "just work". What does this entail? A reliable product that doesn't crash.

Monday, November 2, 2009

Third party warranty damages your brand

I walked into the nearest Future Shop yesterday evening with my friends to purchase an Xbox 360 as a gift for our buddy. During the purchase, the sales guy started telling us about the horror stories he had "heard" with Microsoft and the "terrible hardware" Microsoft was putting out.

It should be known that I own an Xbox 360 and it did fail once before. Less than one week after sending my defective unit to Microsoft, I received a replacement. Their expedient service was stellar, as was the experience I've had with Apple and Dell products. However, the sales guy at Future Shop painted a very different story, one which included:

  1. When the warranty expires, Microsoft will charge me $100 dollars to fix a defective unit and charge me for shipping.
  2. If I choose not to fix it they will charge me to dispose of the device.
  3. The sales guy "heard" from his friends about people who have had nothing but grief when dealing with Microsoft.
  4. The sales guy stated he would "never trust any Microsoft product" without additional warranty coverage.

I think it's pretty obvious that this sales guy gets a commission for every warranty package he is capable of pushing onto customers. However, for the sales guy to spread lies and conjecture, thereby making the product sound utterly unreliable, what sort of confidence should I have with Microsoft?

A more valid question: If Future Shop is partnered with Microsoft, should FS employees be ruthlessly destroying their partner's reputation?

Sunday, October 25, 2009

Experience

An interesting thing about "user experience". Several months ago, I made it a point to ask a handful of coworkers from every department what they felt gives users a "positive user experience". Even within our organization, this definition isn't something that is mutually agreed upon. Each team, project and discipline has their own interpretation of what creates an exceptional user experience.

For me, the analogy I base my interpretations is from gourmet food. "Fine dining" is all about the "experience" of consuming food. It isn't about foods that have an overwhelmingly sweet or salty flavour. It isn't about consuming the appetizer or main course. It's the subtle nuances that are culminated from all aspects of the meal; not just from one specific course or entre.

When focusing on user experience in relation to software development, all the tiny nuances make a significant difference to the end product, but they are just that; "tiny" nuances. On any given project, how many clients would be willing to put out the time and budget in order to give developers the ability to focus on the minor -- often neglected -- functionality? There needs to be a median; I just haven't found it yet.

Wednesday, October 21, 2009

Experts

My friend and I had a quick discussion about social networking sites and how communities such as MySpace, Facebook, and Flickr were all formed through organic growth. Neither of us has heard of a company or organization which deliberately sought out --with a pre-designed plan-- to build a social networking site and have it work out successfully.

I'm sure at some point, these sites employed "social media experts" to help direct the flow of the community, but are there any "experts" who claim to be able to strategically start a community and see it blossom?

Wednesday, October 14, 2009

Riding the propaganda machine

Seeing that there are so many different types of non-disclosure agreement forms and legal paperwork that forbids people from mentioning about work or proprietary intellectual property, it's rather ironic to see technology blogs reporting "leaked" information. The question people should really ask is, "How 'leaked' is it?"

If I were a multi-billion dollar company about to release a product, would I sit idly by as an employee decided to "leak" my IP and potentially give away secrets which competitors could easily glean? If these people are not being sued for their actions, I can only assume these "leaks" were intended. And if they were intended, they aren't "leaks".

Maybe "thematically-infused press releases"?

Monday, October 5, 2009

Sustainability

Last year, a number of tech blogs started to realize the reason why Twitter has had consistent disruptions to their service: over capacity due to Ruby on Rails. The framework that Twitter was built upon wasn't designed to be truly scaleable. At least, not to the degree where web users, cellphone users and media outlets have been slamming their servers. In light of this, it poses several questions which both relate to each other:

  1. How to handle this dilemma?
  2. How much will it cost?

Solving a problem like this is only limited to the budget they're willing to invest into it. Like a lot of people, I still have no clue as to how Twitter generates any revenue. They can get $100m from venture capitalists, but businesses with such explosive growth and no real sustainable business model begs to question how they intend to survive. Was Twitter built with the intention on being purchased?

Saturday, October 3, 2009

(Not) Found on the internet

Over the past six months, I had been working quite intensely on Nintendo-related projects that include developing work to be viewed on the Nintendo Wii browser. The whole experience has been quite frustrating since -- unlike Xbox or PS3 -- there are no official “Nintendo-sanctioned” devkits or resources to assist the dev community in the development of webpages for their browser. Consequently, anyone looking to develop for the Wii platform must rely heavily on the internet to solve their problems.

This in itself is a paradox. Developers don’t develop for the Wii browser because there are no resources. There are no resources because the development community isn’t large enough where people can and/or are willing to write them.

I had been thinking about whether to post my findings on Wikipedia but I’ve opted against it. I don’t want this work thought of as being “official” on any level. However, I do recognize there are a lot of differences between the Wii and Opera browser engine from which it is based upon and these findings are better off distributed to the public. Instead of releasing all the information I’ve accumulated, I will try to post entries that relate specifically to Javascript development and limitations inherent with the Wii.

In other words: those who have no interest in Wii development are going to see this blog as becoming very boring, very fast.

Wednesday, September 30, 2009

Going mobile

I don't claim to know a lot about the cellular market but I do get riled up over how phones have been progressing. I've mentioned this to friends and colleagues alike: when I look at cellular devices, I view it --first and foremost-- as a "notification tool". Not a platform to compete with portable gaming devices. Not a device to let me surf web pages. Not a device that recites GPS navigational charts to me. I think of it as a device intended for me to designate what information is important to me and when I should be notified about it.

When I'm sleeping, I want the phone not to ring with the exception if my girlfriend is calling. When I'm in transit, I want it to vibrate. When I'm at work, I don't need it notify me about work emails because I'm already in front of a computer. When I'm in a meeting, I want this phone completely silent with no vibration; just blink a light if an email comes from a specific person. The phone I need must have multiple levels of notification preferences based on location, time, event, recipient, content, priority and personal preference.

There aren't many devices that can do this, let alone do this natively and out-of-the-box. I've been told on countless ocassions that the iPhone is a "better" device and I vehemently do not agree. If someone were to make that argument, they're probably approaching the device more as a multimedia, entertainment or mobile internet device than a notification tool. It's important to recognize that a telephony-capable MID isn't the same as a device built for alertion; but seeing that this line is slowly blurring, is it necessarily wrong to compare the two?

Monday, September 28, 2009

Naming schemes

Here is a list of minor things about the naming schemes of CSS classes, files and URLs which I've accumulated over the years. Some may be outdated, but nonetheless they were issues found over the course of the last decade of web development:

  1. Back in the Netscape days, some of the versions did not play well with underscores. This meant that underscores were specifically avoided to prevent CSS issues associated with Gecko browsers. This may not be an issue anymore but it is still avoided for SEO purposes.
    • GOOD: <A CLASS="db-item">
    • BAD: <A CLASS="db_item">
  2. Search engine optimization methods suggest using hyphens over underscores for both CSS classes and files.
  3. When CSS classes have numbers immediately proceeding hyphens, the Javascript in some browsers will error. This issue still exists in some IE browsers. Avoid numbers after hyphens!
    • GOOD: <A CLASS="db-item1">
    • BAD: <A CLASS="db-1">
  4. In the past, older, legacy servers weren't able to differentiate upper and lower case letters. They would call upon the same file regardless of case. This problem has been “fixed” and therefore, it opens up the possibility of having two different files named “test.jpg” and “Test.jpg”. I highly recommend filenames and URLs containing only lower case. Domains can never be case-sensitive, so why complicate this procedure by introducing capital letters into the URL? Does it make things easier for a user to remember the word AND casing?
  5. Classes as contextual information. Naming classes based on a visual aspect “middle-column” has always been frowned upon because CSS is supposed to separate presentation information from the HTML. Instead, class names that describe the component or information works far better.
    • GOOD: "breadcrumb" or "main-content"
    • BAD: "left-column" or "font-size12"

When it comes to web development on large-scale projects, I firmly believe in simplicity and consistency. When a decision has been made on the naming schemes, however wrong it may be, it's best to stick with it. This is a more pragmatic approach because it addresses several things:

  1. Developers will always need to work within some sort of limitation.
  2. As a developer, you probably weren't brought onto the project to re-code existing work.

And to be completely frank, if ever you *are* brought onto a large-scale project, the naming scheme should be the least of your concerns.

Saturday, September 26, 2009

Good for business

Although the work I do can really only be found on the web, I’m a huge proponent and advocator of having “less” on the internet. This statement will no doubt have producers shaking their heads in disagreement, but what I’ve been noticing has been a trend with agencies to over-produce for their clients. Very often, I will see clients sold on the idea that it is imperative for their business to have a trendy, custom-built, CMS-driven, W3C-compliant, accessible website because this will help reach their targeted audience.

As of yet, I don’t know of any established brands that have required one nor have I seen upcoming brands flourish by solely depending on it.

I’ve been looking at hardgraft.com and have been very pleased with its overall online presence. Are there any flashy, complex Javascript that makes things fly out or bounce around on the page? No. Do they require a bevy of art directors and designers to implement layers upon layers of designs and drop-shadows to make their products look “sexy”? No. Do they need an iPhone or Facebook app to help promote their business on the social landscape? No. All these additional things help to do one thing: drive the cost of development up.

I have no doubt in my mind that by building an iPhone app for a client, it will generate additional exposure. By building a scalable CMS, the client’s team will be able to easily update their site and grow with their business as it expands. Accessible websites will allow for a greater web audience and a sexy design will get them noticed. The question I have to all this is whether any of this matters in the longrun if the clients’ business goes bankrupt after having spent the majority of their advertising budget on a website?

Tuesday, September 22, 2009

Twittering

Several websites I frequent have been posting up ads to hire individuals to write/blog/tweet. What caught my attention about these ads were that they required applicants to have an initial base following. If you blog, you needed to prove you had x number of readers. If you tweet, you had to have x number of followers. I'm not completely familiar with the mechanics of it, but this sounds to me like these websites aren't as interested in "hiring" writers as they are looking more to purchase an audience base.

Sunday, September 20, 2009

Targeting

<A href="URL" target="_blank">

For those who are unaware, a more "proper" way of writing HTML is to exclude the target parameter from the <A> anchor tag. This has been commonly used on many sites to open links in new windows. From the different documentation that I've read on the internet, using HTML to open new windows is deprecated because it causes problems with braille readers and other devices meant to assist the impaired.

Accessibility aside, my own thoughts on this matter are that web users should be given the choice as to when they feel it's necessary to open a link in a new window or not; HTML shouldn't dictate this. However, when approaching this in a business perspective, there are also many legitimate reasons that justifies why links should open in a new window. One way to overcome the accessibility requirements is to:

  1. Build the site where <A> anchors do not contain the target parameter
  2. Instead, add a class to those anchors <A CLASS="external-link"/>
  3. When the page loads, use javascript to:
    • crawl through the page
    • check all <A> anchors with the "external-link" class
    • inject the "target" parameter into the tag

There are different ways to approach this issue and depending on the business goals, this isn't the always best. The downside to this method, although minor, is that by crawling through the page, you are increasing the rendering time when the page loads. This is, of course, only an issue if the browser is on a slow device, the page contains a lot of objects or if the user is running on IE6.