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.