Tuesday, June 30, 2009

Civility in the Workplace

This will be more like a Tweet then a blog, but Jean McGuire who was kind enough to attend class last week and provide some of the sociological side of the discussion sent me this blog post on Civility in the Workplace by her former colleagues in Iowa State's extension offices. It discusses the role of agile software development and the importance of designing applications in partnership with those who will be using the applications.

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

Augmented Reality

Two interesting augmented reality videos came to my attention tonight. The first, via this post on O'Reilly Radar, is a first-person shooter created by the Georgia Tech Augmented Environments Lab:

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

A Few Articles to Check Out

Now that project one is done (or is being wrapped up by some of you), I found a couple of links in my morning RSS feed that I thought some of you might have an interested in. Particularly, I think the report on Wikipedia's Usability Initiative will be helpful for all of you going forward with usability research as it details all of the steps they took in their evaluation process. Most corporate white papers and academic reports on findings don't detail their entire process, so having a resource available where they have put everything out there can be helpful in understanding the full scope of what goes on in usability research if you haven't had any experience outside of the limited scope of most classes (the scope for this project was slightly more realistic but due to the limited time frame shortcuts, of course, had to be made).

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

So what's the symbology there?

As I read the opening chapter of Paul Dourish's Where the Action Is, I couldn't help but pause to reflect on the phases through which interaction has evolved over the years: electrical, symbolic, textual and graphical. Dourish characterizes the transition between phases as "a general trend that emerges in a number of different ways"(7). What he didn't mention is that each new interaction paradigm has served to supplement the former in a continual coevolution. This coevolution will be essential as we try to make the most of the new devices and manifestations of computational power, particularly with relation to multi-core and distributed processing.

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

Service Oriented Design Reality?

True Service Oriented Design vs. Large Corporate Politics

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.

Dustin Curtis, who is a talented User Interface Designer, decided to redesign American Airlines Website after experiencing terrible time booking a flight via AA website. Dustin redesigned a front page in a few hours and suggested some things that are very important, but most importantly “customer experience”. After his posted his redesigned site plus some suggestions, he actually head back from AA User Experience Architect! This architect explained a few things.

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.

Wolfram Alpha

Are we seeing a new kinds of search engine here? Google was loved by everyone when it came out after a series of ugly search engines that didn’t provide anything that you can actually find information you need. Google’s simplicity made a difference. Is Google behind now? What users want from the search engine. Are they looking for a particular information, related information, or simple crawling. The users will be the judge to which search engine provides value/experience they want.

Tuesday, June 2, 2009

Model Driven Reqmnt vs Document Driven Reqmnts

The purpose of this blog is to discuss the idea of model driven requirements vs document driven requirements. One may say "this doesn't seem to have much to do with HCI" but it does because obtaining and maintaining requirements requires a lot of customer interaction, internal and external. You have you internal customers, for example subsystem and component level groups. These are the groups that will use your requirements to develop their systems. Stakeholders, end-users, etc can represent external customers. These are the groups that will/should deliver requirements to you. When it comes to usability studies or analyzing your customer's needs, which method is more effective? Sometimes in document-driven requirements (i.e. microsoft word) it is difficult for the requirement writer to express what they really mean. Would it be more helpful to supply the customer with a model that they can "play with" and provide feedback to the design group? In essence the design team could use a model or "service design" as a requirements development tool. Is this possible? A better way? Your thoughts....