More than Pretty Pictures
I'm a terrible artist. Whatever that genetic data is that allows an individual to make aesthetically pleasing decisions about things like shapes, sizes, and colors, it completely skipped over me. And to make matters worse, because I'm a musician, I am just right-brained enough to know how this lack of ability in the visual arts cripples me as a developer of software with which humans need to be able to respond and interact. So to make up for my lack of natural talent, I have recently been spending a good bit of time focusing on the area of usability and data visualization. I am continually amazed at some of the research that's being done in this area.
In the past few years, we have witnessed some terrific advances in the availability of information. Server-side technologies such as Web services, RSS, and RESTful APIs have simplified both intra- and inter-application access to data. And new technologies are continually being released to enable even more seamless, more transparent access to information (you're definitely going to want to read Elisa Flakso and Mike Flasko's article "Expose and Consume Data in a Web Services World"). Along with this increased availability of information comes the continued need to structure and present it in a way that is easily understandable by its ultimate consumers.
On the client side, technologies such as Windows Presentation Foundation (WPF), AJAX, and now Silverlight are enabling richer interactions between human and computer that are much more seamless and collaborative in nature, as opposed to those applications that felt more like inputting commands into a command processor. In fact, these types of technologies have served as a foundation for creating "mash-up" applications that, even at the presentation layer, are an aggregation of several different applications.
However, one of the challenges that we face yet again is that of consistency. In regard to Web applications, the complete and total freedom around everything related to the user experience can be a double-edged sword. And while WPF enables a shift away from this dynamic, the freedom offered to Web application developers stands in sharp contrast to the standardization, both by platform and general heuristics, applied to Windows-based applications. Although traditional Win32 applications and their Windows Forms descendants didn't have the stunning visual effects of a modern WPF application, there was predictability in terms of where UI elements were found and in how they behaved within the context of the larger application window.
Fortunately, in the world of Web applications, standard presentation patterns did start to emerge and were bolstered by technologies such as CSS and DHTML. Interestingly, it seems that the standard look for most modern Web sites, including large corporate sites, has emerged out of the standard CSS templates used in blogs. As such, one of the reasons that I am so excited about XAML, whether in the form of WPF or Silverlight, is that this declarative style of UI design enables the same maturity to develop naturally, even in rich-client applications.
As we continue to mature as application developers, we do so in a world with enormous amounts of data. And we do so with a continually evolving toolset—tools that enable us both to collect and process that data, and tools that enable us to better distill and present that data to our users. So while my sketches may always look like they were drawn by a fourth grader, I believe that I—and all of us who are artistically challenged—must learn some specific techniques for ensuring that our users are not simply impressed but also able to be more efficient.
Thanks to the following Microsoft technical experts for their help with this issue: Tim Cahill, Pablo Castro, Barak Cohen, Matthew Cox, Anish Desai, Mike Flasko, Matt Gibbs, Bertrand Le Roy, Laurence Moroney, Ari Pernick, Edward Psyk, Dave Reed, Mark Rideout, Don Smith, Stephen Toub, Stefan Wick, Matt Winkler, and Robert Wlodarczyk.