Friday May 15, 2009

Do you use Google to search the Web?  Isn't it great that Google returns a search result of relevant information for just about anything that you enter.  In software engineering, there's a term that describes such predictable and reliable outcome.  It's call the "happy path" and it defines the default user experience when the software works as intended.  I first learned about it in college.  It has been a while, but I think the subject still has a lot of relevance today, especially in Web application design.

Imagine your reaction if Google errors out or returns no search results, every other time you use it.  That would not be a good user experience.  So how do you factor in the happy path into the design and the implementation plan for your application?  Whether you are building a Social Media Website or an IT application for internal consumption, the process starts with good product or business requirements.  When you write the high level requirements and use cases, you are defining the happy path.  Good requirements should specify how the application process the end user's request to deliver a user experience that meets or exceeds the end user's expectations; focuses on the desired functionality.  In the case of Google Search, I'm guessing that the original requirements may have been written as follows:

Build a search engine with a simple user interface that accepts the user's input, intelligently determine the most relevant Web resources, and present the user with the search results sorted by popularity.

Good requirements also facilitate great design.  When evaluating your design options, you should focus on a design that engages the user and keeps the user on the happy path.  Some Web applications calls for rich interactions (RIA).  In the case of Google Search, as simple design seems to work very well too.  Either way, a streamlined user experience will definitely appeal to the users and enhance conversion rates.  Your design should also account for how the application recover when something goes wrong.  There's a popular saying "Sh*t happens", and it definitely applies to anything on the Web.  Most users will tolerate some mishaps,  but you really should do your best to minimize the impact to the user experience.  Your average Joes won't put up with HTTP 404 or 503 errors, but they will appreciate good humor such as the case with the Twitter Fail Whale.

Finally, how do you ensure that you are on target with your design?  It is important to test out the new functionality and verify the outcome against the original requirements.  In-house User Acceptance Testing (UAT) is a common practice for IT applications, and external Web applications without established communities.  Since UAT involves a controlled group of testers (generally superusers), be sure to provide all users with a feedback loop.  Public beta testing and user-driven designs seem to be very popular among Web 2.0 applications.  GMail which was launched in 2004 has retained its beta status despite its success and mass adoption.  Facebook with over 200 Million users engages the user community through the Facebook Blog.  Both are tremendously successful in attracting and retaining users.  Although there's not a singular approach to engineering great solutions, there's definitely one common theme:  Stay on the happy path.  After all, who doesn't appreciate software that simply works.

Thursday Apr 02, 2009

Yesterday, I experienced April Fools Day in all its glory.  Like the day before, I was taking CalTrain to San Francisco to attend the Web 2.0 Expo.  It was only the 2nd day of the conference, but I felt I was starting to develop a commuter's routine.  Unlike the day before, I decided to park at the nearby free parking lot which required an extra 3 minutes walk to the Sunnyvale CalTrain station.  Unfortunately, I didn't pad my travel time.  By the time I arrived at the train station, the 7:13am express train had arrived.  I tried to rush thru the ticket purchase process, hoping still to jump on that train.  As I completed the electronic ticket purchasing process, The train doors had closed.

So I missed the 7:13am train, but luckily the next train arrived at 7:18am.  I jumped aboard thinking I will still arrive in San Francisco by 8:20am in time for the first conference session that starts at 8:30am.  As the train pulled away, I inspected my ticket and realized that I haven't purchased enough fare.  The CalTrain fares are based on zones.  To travel from Sunnyvale to San Francisco and back, I needed to purchase a round trip ticket from Zone 3 to Zone 1.  In my rush to make the 7:13am train, I had purchased a round trip ticket from Zone 3 to Zone 3; not so smart without my morning Starbucks.

I decided to jump off the train at the Mountain View station to purchase additional ticket fare, since you cannot purchase tickets onboard (VOC to CalTrain:  How about placing a ticket machine aboard the train for people who forget to buy the ticket at the station)  Of course the ticket machine wasn't nearby, so I needed to run to the machine and rush thru the ticket purchase process again.  This time, I managed to purchase the correct ticket fare.  Except as I turn around, the doors on the train had closed.

By now, I was starting to realize that this was no ordinary day and that somebody (perhaps myself) was pulling an April Fools joke on me.  The next train (at 7:37am) a local commuter train would take me to San Francisco by 8:48am, so I opted to wait for the 7:57am express train that eventually got me to San Francisco by 8:42am.  For 1/2 hour, I waited at the Mountain View station, enjoying the fresh morning air and the free WiFi courtesy of Google.  It also provided me with the time to pause and reflect on the experience.

So why didn't I give myself more time yesterday?  This morning, I was determined to not repeat yesterday's mistakes so I left the house 5 minutes earlier.  By the time I arrived at the station and purchased my ticket, there was still 1 minute to spare.  Through iteration, I think I have finally perfected my commuter's routine.  Unfortunately, the Web 2.0 Expo ends tomorrow.  As I wrap up on this blog entry (aboard the CalTrain ride this morning), I believe there's a lot of lessons to be learned from sharing this experience.  Of course, I hope you enjoyed my April Fool's Day story as well.

Monday Dec 22, 2008

Recently, there has been lots of news coverage on the Russian warships visiting Cuba.  The event has renewed memories of the Cuba Missile Crisis and the Cold War, which led the U.S. to impose a permanent economic sanction and trade embargo on Cuba.  While the original embargo was oriented towards import and export of certain goods between US and Cuba, over time the scope of the ban has been extended to cover most products and services including technology products such a computer software.  Similarly, the US government has mandated embargo treatments for several other countries as well.

If you work in the software space and you deliver or receive your software electronically, you may have unknowingly been subjected to these embargoed country checks.  U.S. based companies and their international subsidiaries are required by U.S. laws and regulations to take appropriate measures to comply, by restricting software delivery to non-embargoed end users.  Depending on your business model, targeted markets, business volume and risk tolerance, the compliance mechanism can span the spectrum from manual verification for low volume offline channels, to fully integrated solutions for high volume electronic software delivery.  If you are a Sun customer, partner or employee, please be aware of Sun's policy on this matter.  By the way, this is my personal Blog and it does not necessarily reflect Sun's official views.

Unfortunately, the embargo country check applies to even "free" software delivery, where no actual commerce is conducted.  Since most of these software downloads tends to be anonymous transactions,  the end user's country is generally determined base on the end user's IP Address.  Vendors such as Digital Envoy and Quova offers IP geo location services that fulfill such business needs with high degree of accuracy.  Most CDN providers (e.g. Akamai) also bundles IP geo location into their download services.  But because the Internet is constantly growing and evolving, false positive matches do occur, denying legitimate end users access.  For these rare events, it's important that a closed loop process is in place to address the end users' needs in a timely manner and to minimize the business impact.

While I understand the government's intention in imposing trade embargoes and economic sanctions on selective countries, I question the actual value when it start to impede on the freedom and the inclusiveness of the Internet.  Try to visualize the Internet experience from the perspective of the children in these embargoed countries.  Educational and children Web sites like Disney.com and Nick.com depend heavily on software such as Java and Adobe Flash to provide an enriching and interactive experience. Yet, it seems quite silly that these children would be banned from downloading these commonly distributed software.  That would be like watching TV in black and white, while the rest of world enjoy the vividness of high definition (HD) TV.

I'm not a lawyer, nor do I fully understand these government policies in detail.  Perhaps I'm under-appreciative of the potential risks that companies subject themselves to, by not complying to the letter of these laws.  However, it just seems like the affected parties are not necessarily the intended parties.  After all, there are ways to circumvent or spoof the embargoed country check mechanisms.  My point is that while compliance is important, companies operating on the Web should strike an appropriate balance between compliance to government laws and regulations, and the voice of the under-represented user communities.

Do you have any thoughts on this subject?  Please feel free to share your thoughts in the comments field below.

Thursday Aug 07, 2008

World Internet Users by GeoWith nearly one quarter of the world population connected to the Internet, the Web has become a global forum for sharing information, conducting commerce, and advancing the human race.  Recently, in delivering the news that we are so accustom to, the Internet has also been making a lot of important news.

One week before the 2008 Summer Olympics opening ceremony in Beijing, the media covering the event shifted the focus onto the vast Internet censorship that exists within China.  The International Olympic Committee (IOC) came under fire for supposedly softening its stance toward China at the last minute, on the commitment to provide the media with the fullest access possible (especially Internet access) to report on the Olympics.  Whether true or not, the international attention and scrutiny has helped to clear the censorship within the Olympic village.  But it will be interesting to see whether the Olympic spotlight will lead to positive lasting changes.  While the Great Wall remains an enduring symbol for the people of China, for now the path to individual freedom is still through the gateways of China's Great Firewall.

Here in the US, there is no censorship on the Internet.  Everyone has a voice!  It is a right back by the First Amendment to the United States Constitution.  However, some people fear the equality on the Internet is being threatened by the commercialization of the Internet and the control dominated by residential broadband providers.  Just this past week, the FCC ruled against Comcast's throttling of BitTorrent traffic, requesting for the immediate end to the "discriminatory network management practices".  The advocates for network neutrality declared the FCC action a small victory for the Internet and the people.  The ISPs and Telcos cited the ruling as argument against the need for network neutrality legislation.  However, Tim Berners Lee has long shared his belief that the fundamental values of the Internet must be protected by the government:

"Control of information is hugely powerful. In the US, the threat is that companies control what I can access for commercial reasons. (In China, control is by the government for political reasons.)"  Tim Beners Lee.

Having been an end user of the Internet since the early 1990s, I appreciate the freedom on the Internet and the uncensored nature of the Web.  I also firmly believe that the Internet has grown largely due to the innovation of the private sector, and more recently because of the Open Source community.  While there have been abuses of the Internet by both the consumers and providers alike, I believe (just my personal opinion) that the Internet and the online community would best be served if allowed to evolve with minimal government oversight and intervention.  Just as I hope the Olympic spotlight in Beijing will prove to be the turning point for the Internet censorship policy in China, I believe the FCC action against Comcast will compel the residential broadband providers to work toward more transparency and self regulation.

This blog copyright 2009 by Alfred Chen