Tuesday, June 30, 2009
Although since I'm writing up a blog post anyway, I recommend checking out this hour long interview with Don Norman where he talks about service design, user experience vs. usability, and several other topics. Project 1 and 2 focus primarily on what I refer to as 'classical usability' with a lot of focus on Cooper for design and Tullis for evaluation where it's about creating applications where the user can complete a task because the design follows the cognitive concepts in the layout. The service design project is more about the holistic user experience, taking into account not just the usability but also the emotional and other aspects that allow a user to forgive mishaps so long as there is that extremely salient service moment that leaves the customer happy with the overall experience (Norman uses the example of how at Disney everybody hates the lines--which are everywhere and make up the majority of the experience--but almost everybody would go back).
On a final point with service design, I am going to throw out this controversial idea (feel free to discuss in the comments:
Computers will never replace the best waiters and waitresses but very few waiters and waitresses excel past the mediocre level* and computers will always outperform the mediocre waiters and waitresses.
*I am defining "mediocre level" as taking an order and delivering food. E.g. doing their job at the bare minimum.
Tuesday, June 16, 2009
The second is Layar, an Android application from the Netherlands that overlays useful digital information over a real-time video from the phone's camera:
Imagine a shopping experience that show furniture designs as they would look in your own home. Or advertisements that render a three-dimensional view of a product when viewed "through" a mobile device. There's lots of potential for abuse, but as these composite interactions becomes more popular I expect we'll see some really interesting innovations.
Monday, June 15, 2009
On a related note, and something I didn't emphasize enough on this project, is that a good designer documents all decisions and should be able to provide some type of justification for the decision. They might not like it, but that's the way the business world works (not just engineering)--if you can't give a reason then a firm hiring you is justified in dismissing your input since nothing backs it up. There should be a reason why the button is placed on the lower left instead of the upper right and you should have some type of reason behind choosing the line width and color (note: I only mean this to a degree, if the difference isn't perceptible to most people then there's no issue but a thicker line creates more of a disconnect between different types of content and different shades can convey different emotions). For this project I'm not making you justify the minor aesthetic details like that but be aware that some people will ask (and you better have an answer).
And here's something to get the marketing people all up in a tizzy (do people still use that word, really?), there's a piece written about how the products are worthless. This gets into a lot of what we're talking about with the social theories, Where the Action Is, and service design in that the product itself does nothing for a user until it becomes useful to the user in a given situation/context. For better or worse, we are transitioning into a service/knowledge economy in the Western world and talking about the world in terms of products is so last century--you have to think in terms of 'value added', 'experience', etc.
Sunday, June 14, 2009
As a mathematician and language geek, I'm most drawn to interaction optimizations at the symbolic level. Through my programming career, I've been exposed to dozens of symbolic abstractions, ranging from Logo and my TI-85 to academic amusement with Scheme to "real-world" languages like C and Java. For the most part, however, the languages have been more similar than different. And with the exception of a course on functional languages, the style of programming was always the same: tell the computer how to push these bits around. For the majority of problems, that was simple enough, particularly with the steady march of CPU speeds in step with Moore's Law.
Well physics decided to step in the way of our 20-GHz CPUs, leaving us instead with dual- and quad-core systems. There's still an increase in processing power, but taking advantage of it requires new ways of thinking. Among these are various new (or new-again) symbolic abstractions that will be essentially to get developers back to the point where the electrical systems are sufficiently hidden that we can get on with the real work of building the next generation of textual and graphical interfaces. As a developer on the Microsoft platform, there are two in particular that are of interest: Axum and F#.
According to Microsoft, "Axum is a language that builds upon the architecture of the Web and principles of isolation, actors, and message-passing to increase application safety, responsiveness, scalability, and developer productivity." In other words, it's a domain-specific language (DSL) built specifically for scenarios involving distributed and concurrent computation. I haven't built anything with it yet, and at this point it remains very much experimental, but the concept has a lot of promise to faciliate the creation of applications and frameworks that can seamlessly handle the new architectures that have emerged. For more information, check out the Axum page on MSDN.
Functional languages have been around for a very long time, and they are based on the lambda calculus which has been around even longer. But only recently have they started to come back into mainstream view, due in part to new functional languages for the major development platforms: Clojure and Scala for the Java Virtual Machine, and F# for .NET. The other reason for this comback is the ease with which functional languages handle the problem of concurrency through the use of immutable values and data structures. These languages also provide other higher-level abstractions that move developers away from specifying "how to push these bits around" and more toward specifying what they are trying to accomplish.
In both cases, there is clear value in solving the difficult problems once and letting symbolic abstractions shield the rest of us from ever having to think about it at a low level. It will always be necessary to have some knowledge of what's happening behind the scenes, just as managed memory doesn't free the developer from memory considerations completely. But leaning on advanced symbolic abstractions is one more way to advance the state-of-the-art in HCI.
Thursday, June 11, 2009
We have started to discuss the service design and it’s concept. I really like the idea of experience as a whole interaction and focuses on you as a customer. I just recently read relevant service design topics on the web.
A letter to AA:
A reply from AA:
The letter from AA architect touched a few things about Front and Back Stage Design process and how it is completely messed up system that they have to work in bureaucratic/political corporate environment. The website, especially AA would suffer tremendously due to many departments are in charge of area in the website. Each department have its objectives and goals to meet. By the time all of the contents are added into the site, it become large mess to customers. As a customer, you know what you need to do from their website. It is not a very long list of tasks, but the site makes it complicated.
Dustin responded a letter and mentioned that “customer experience is the new brand”. I have to agree with the idea. Everything, I mean everything the company communicates to the customer or the other way around must be part of corporate strategic plan. You have to shake your head to the airline companies. I am not sure about you, but I haven’t had good experiences when I flew. I don’t care for security procedures, booking, pricing, airport, scheduling, food, seating, and the list goes on. It’s a “have-to” thing to get one place to the next quicker. So you have to ask why don’t the airlines make the experience more pleasant, especially in the front end where a customer has to interact before flying. The during a flight and after is important too.
The UI design on the web and services people have to interact to be served are necessary evil that the corporations must to rethink. Sell the experience!
Another interesting read about painful process of corporate product development:
New experience in search engines:
Another quick note about the new development with a few search engines that just released to public.
Microsoft Bing is a new search engine that displays related content, but little more visually interesting to crawl the search engine. It shows you some related contents that you are looking for. Photos and videos search displays somewhat different from what you expected from Google. I especially like the thumbnail views of video that you can actually play a few seconds when you mouse over. $100 million marketing campaign is not just the hype only. It has some minus but the concept is good. However, there is already a talk about copyright infringement of music/movies in thumbnail’s view.
Wolfram Alpha, a maker of Mathmatica, released this interesting knowledge-based computing. They call it, “a computational knowledge engine”. Is this become the rise of machine? We have to see...
As of now, Wolfram|Alpha contains 10+ trillion of pieces of data, 50,000+ types of algorithms and models, and linguistic capabilities for 1000+ domains. Built with Mathematica—which is itself the result of more than 20 years of development at Wolfram Research—Wolfram|Alpha's core code base now exceeds 5 million lines of symbolic Mathematica code. Running on supercomputer-class compute clusters, Wolfram|Alpha makes extensive use of the latest generation of web and parallel computing technologies, including webMathematica and gridMathematica.