Life is Beautiful

User Interface is an Art

Software is service: Why is it so hard for software engineers to fully internalize it?

The phrase "Software is service" became a very important keyword for Microsoft in late 90s. It was very obvious for Microsoft executives that the "shrink-wrapped" software business will be eventually taken over by "subscription" software business, where the user will pay monthly subscription fee instead of a fixed amount for a particular version of software.

First, Microsoft has tried to sell Microsoft Office in this business model (ASP model), but it soon became obvious that it does not work because the Office applications were not architected appropriately to support that model (they were traditional "big fat" client programs).

A new group was formed to create the next generation of productivity applications, which would allow Microsoft to sell those applications as subscription services. All applications were developed using web-technologies such as HTML, XML, Javascript, HTTP (using the technique called AJAX today), so that they will run as web-applications within Internet Explorer.

This group was eventually named Netdocs, and had nearly 400 engineers at its peak. This project was, however, eventually killed although Microsoft has never officially announced its defeat (as usual).

I was one of original members of Netdocs, and I know exactly why it failed now. Netdocs has failed not because of the internal politics (even though many people still believe it), but because of engineers (including myself) who do not understand what does it take to build a good service.

Building traditional large-scale software (such as Microsoft Office or Windows) requires a set of very smart people who understand both technologies and market needs. They spend a significant amount of time designing and architecting the product, which often takes over a year. Then, they grow the team big enough to implement various features and functions they came up with and spend a large amount of time (typically a year or two, but sometimes three to four years) writing code and testing it. They release beta version of product to public once or twice to get "customer's feedback". During this beta cycle, they receive a large amount of feedback. Even though these feedbacks include both bug reports and feature requests, they often just address bugs because they are "much higher priority". They eventually release the product to the market, have a big release party, and then take vacations.

Their job ends when they release the product. The most important part of this process is the very first part, where those smart people design and architect it.

Running services, such as restaurants, sports gyms, theme parks or web sites, however, require very different mindset. First of all, they don't try to design and build the whole service before opening the business to their customers. They involves real customers into their design process. Instead of trying to come up with a perfect menu of food before opening the restaurant, the owner opens the restaurant with a tentative menu and keeps improving it based on customer's feedback. A good theme park continuously evolves itself in order to make their customers come back again and again.

The most important part of building a good service starts at the day they open the service to the public. Therefore, it is much more important to have an internal process that reflects customers’ feedback quickly than having a set of good services at the day one.

Netdocs projects had great engineers who had built great products such as Office, Windows and Internet Explorer, but their mindset was all based on traditional shrink-wrapped software business. Instead of coming up with a small set of features and release it to customers quickly, they have tried to build something compelling enough to convince their customers to switch from Microsoft Office - a totally wrong approach to build a service, and a politically inappropriate approach to take within Microsoft.

If I am going to build a web-application business that targets those productivity applications today, I will not try to build something compelling enough to directly compete with Office applications. Instead, I will focus on a couple of key scenarios and build a web application that allow customers to do those specific tasks much more efficiently than using Microsoft Office products. I would release it to the public quickly in beta quality, and allocate significant resources to build an internal process that allows us to get customers feedback efficiently and quickly reflects them to the service.

There are a lot of things we can learn from the failure of Netdocs. I strongly believe that all software companies need to figure out the way to turn themselves into service companies. The web significantly reduced the cost of software distribution and also made it very easy to get customers feedback directly or indirectly. It is critical for all software companies to build a very good internal process that allow them to learn from customer feedback and reflect them into the product quickly.

October 27, 2005 in UIE Vision | Permalink | Comments (2)

Pervasive Application

The continuous innovation of hardware technology in last two decade made it possible for all of us to have 4 GHz CPU, 1 GB RAM and 100GB HD in our desktop PCs, notebooks, and even game consoles. It sounds great, but I think it is time for all of us in this industry to think if this is the right direction to continue throughout the next decade.

Let's take a look at the list of technologies below and rank them based on the significance to our own lifestyle change in last five years.

A. Personal Computers (Windows PC, Mac ...)
B. Game Consoles (PS2, XBox ...)
C. Portal Game Consoles (PSP, DS ...)
D. Portal Music Player (iPod ...)
E. Cell phones (including Blackberry)
F. Web (Google, Blog, Amazon, SNS, Social Bookmark ...)

I believe the majority of us will choose E or F as the most significant one, while younger people will probably rank C and D higher. Very few people will choose A and B as the technology that changed their lifestyle in last five years.

It is important to notice that PCs became an integral part of our life in late 90's, but the incremental improvement to the hardware and software after Windows 95 (faster CPU, more memory, Windows XP) had a very small impact to our lifestyle.

This fact makes me believe that it's time for the whole industry to pay attention to the total user experience, which involves variety of devices, network, contents, applications and services. Instead of putting more CPU-powers and memory to each device, we should pay much more attention to contents, applications and services that the user will access from those devices and figure out the way to make them much more accessible and available.

I firmly believe that the total user experience would be much better, if we allow users to own, subscribe to, or maintain music, video, photos, games, applications and services somewhere on the Internet and access them from any devices, regardless of CPU, Operating system or network.

I call it "pervasive application" user experience.

Here is an example. A user starts playing an on-line chess game with a friend from home using her Mac mini. She continues to play it while she drives her car to the office using the car-navigator. She continues to play it while she is waiting for her low-fat late at Starbucks using her cell phone. She even continues to play from her Office using her Windows PC while her boss is not watching.

It means applications that require only 40MHz CPU and 1MB of memory on the client side will have much more value to the users than applications that requires 4GHz CPU, 1GB memory and GPU, because they will run virtually everywhere.

I am not saying that applications must be designed for lowest common denominators. Those applications simply need to be designed "scalable" so that it takes advantage of those extra resources only when they are available. The online chess game described above will take advantage of 3D graphics capability on PCs and use voice input technology on car navigators, but it still runs on low-end Java phones that have limited CPU power and tiny screen.

I believe next generations of applications including productivity applications (word-processor, spreadsheet ...), games (on-line chess, gambling, MMORPG, FPS ...) and content-services (video-on-demand service, online music store, daily comic reader ...) should be built as pervasive applications so that the user can enjoy those contents and services no matter what devices they have or what kind of network is available.

October 26, 2005 in UIE Vision | Permalink | Comments (2)

My Photo

Recent Posts

  • Who killed Windows?
  • Tokyo life-style vs. Fukushima life-style
  • Amazon's Cloud Reader vs. my CloudReaders (TM)
  • Facebook API on Google App Engine: JavaScript SDK vs. Python SDK
  • Debugging Facebook AppEngine application locally
  • Google App Engine: Updating Your Model's Schema (schema-versioning)
  • Handing and Testing DeadlineExceededError
  • Dear users of CloudReaders(TM)
  • Why HTML5 is a big threat to Adobe
  • Sticker shock of iLike acquisition
Subscribe to this blog's feed

Archives

  • January 2014
  • June 2012
  • August 2011
  • January 2011
  • December 2010
  • April 2010
  • October 2009
  • August 2009
  • March 2009
  • February 2009

More...

Categories

  • Business and Marketing
  • Entertainment
  • ianime.js
  • iPhone
  • News Clip
  • Technology and Business
  • Telco/Wireless Industry
  • UIE Vision
  • User Experience
  • Web/Tech