Main | October 2006 »

September 28, 2006

Notes on Edward Tufte's Information and Data Presentation Concepts

Along with some co-workers at TheLadders.Com, I attended a lecture on Data and Information Presentation by Edward Tufte on August 25th, 2007. Excellently presented, with fantastic insights; some of which go counter to conventional wisdom. This isn't surprising if you think about all of the ineffective presentations you've seen in your career. I've been raving about it for weeks and doing my best to incorporate his concepts in to my own presentations.

More recently, I've started looking for other lectures and workshops to help me with my presentations and writing. I've got some training budget to use up by the end of the year and I'm open to suggestions.

It's always struck me as an impossible task to consolidate a full day's lecture into some notes that can be consumed in a short sitting. I don't think I can summarize the lecture and do it justice. And then again, what's the point? Why does this material need yet another set of summary notes. Instead, I'll just link to a nice set of notes I found online (thanks to David Stack) and to Edward Tufte's own site. He can speak pretty well for himself. To give you a taste, though, below are some of Tufte's grand principles. In a subsequent blog entry, I'll follow up with my own thoughts on how the concepts might apply to a common presentation seen by Software Developers all the time, the "Product Specification".


The Grand Principles of Information Display

The First Grand Principle: Enforce Wise Visual Comparisons., i.e., force answers to the question "Compared with What?"

The Second Grand Principle: Show Causality. We are looking at information to understand mechanisms. Policy reasoning is about examining causality. Napoleon was defeated by the winter, not the opposing army, as shown by the temperature scale on the bottom of Minard's graph (http://www.edwardtufte.com/tufte/posters).

The Third Grand Principle: The World We Seek to Understand is Multivariate, as Our Displays Should Be. The Minard graph has six dimensions: size of the army, the two dimensional route of the march, the direction of the march, the temperatures and the dates.

The Fourth Grand Principle: Completely Integrate Words, Numbers and Images. Don't let the accidents of the modes of production break up the text, images and data. Just because the artists, technical writers and database people work in different buildings doesn't mean reports should be disjoint with text, graphs and images in different boxes or on different pages.

The Fifth (most important) Grand Principle: Most of What Happens in Design Depends upon the Quality, Relevance and Integrity of the Content. Minard's graphic was made as an anti-war poster. To improve a presentation, get better content. If your numbers are boring you have the wrong numbers. Design won't help, it is too late.

The Sixth Grand Principle: Information for Comparison Should be Put Side by Side., i.e., within the eye span, not stacked in time on subsequent pages, which is known as 'one damn thing after another', and also known as the computer interface. The computer interface is a low-resolution display device compared to paper, so we have a relentless sequentiality. The most common user question after a sequence of computer operations is "Where am I?" The lesson: get the biggest monitor of the highest resolution that you possibly can.

The Seventh Grand Principle: Use Small Multiples. They are high resolution and easy on the viewer, because once the viewer figures out one frame, they can figure out all the rest based upon what they have learned. It escapes flatland by introducing time as a variable. They have an inherent credibility with the viewer because they show a lot of data, i.e., "I know what I'm talking about and I'm showing all my data to you." Keep the underlying design of small multiples simple and clear.

The Eighth Grand Principle: Don't Dequantify. Numbers have meaning. Use numbers or a graph that represents them. Don't reduce quantities to on or off, yes or no, here or not.

The meta-principle over all of these Grand Principles tries to answer the question about how we derive principles of information display. The meta-principle is: Thinking and designing are as one. If the cognitive task is to make comparisons, then our display should do the same. The principles of information design are the principles of reasoning about evidence. It is visual thinking. Good design is a lot like clear thinking, made visible.

Start by asking, what is the intellectual task that this display is supposed to help with?

September 21, 2006

Why This Blog Exists

Welcome to the developer blog for TheLadders.Com. I've been informed by one of the developers, that "no one wants to be the first to post", so I thought I'd solve that problem by providing this introduction. I'll talk about the goals of this blog and the greater effort to give back to the community.

Like any good development shop, we freely research and copy some of the best ideas floating around the community. This includes open source code, design patterns, best practices and more. It seems only fair that we give something back. We have several such contributions in mind. This blog is only one avenue for accomplishing this; other methods include open-sourcing certain solutions, articles and white papers. And being a blog, I expect to the usual musings on development methodolgies, presentation of technical ideas, reviews, notes on conferences and the like.

Of course, like any for profit company, we want to get something out of it, as well. Some say that this is even true of people: there is no altruism and all actions have a self-serving motivation (even if that benefit is just to feel good about themselves). I don't know if that is true or not for people, but I believe it is true for companies. So, what is our motivation?

It's a multi-faceted answer, what we hope to gain. For starters, our developers benefit in terms of career advancement and professional self-improvement (an important metric for quarterly reviews). And, this in turn boosts morale. Further, there is the chance that feedback (including code patches) will be of value to us. And then there's the positive impact that such efforts can have on our reputation in the technical community as a great tech shop to work in. I hope that we will benefit in all these ways.

I mentioned above that we have several contributions in mind. Here are some of them:

1. Dynamic Configuration (Primary developer: Zhi-da Zhong)
Based on the Spring framework. This system was originally used to implement simple A/B tests and more complex A/B/C/* multi-variate tests. Although, in the latter case you will also need a method to plan the test and evaluate the results. It can also be used to implement dynamic site navigation (i.e. through configuration in the database we can override the controller, view and session parameters for a request as mapped in Spring's config). We can also apply test conditions to segment the population for dynamic behavior based on user attributes, random weighting or other factors. For example, we can create a module where 90% of premium users living in New York will go to a Job listing page with a Statue of Liberty image in the background, and 10% will get a solid colored background. For more salient examples, ask your marketing department.

2. Java-script Search (Primary developer: Larry Ogrodnek)
Library to implement keyword searches on a client-side data set. Use AJAX to trigger the search and apply the results.

3. AJAX method for passing data to the client as HTML fragments, rather than JSON or XML (primary developer: Josh Levine)

4. The Ladders' QA Toolbar (Primary Developer: Josh Levine)
An AJAX tab at the top of all of our pages (in our QA environment). Clicking the tab opens a div that is chock full of diagnostic information (controller, view, user's details, unique page identifier, details of applicable Dynamic Configuration modules). And a quick link that semi-automates the task of creating JIRA issues. This tool has greatly enhanced QA's efficiency in finding and reporting defects and the development team's ability to diagnose those defects.

Finally, since I haven't mentioned it, yet, I'll briefly state who I am. I serve as Director of Application Development at TheLadders.Com. I'm responsible for managing construction of the core products and support tools for the company. I do this with the help of a great team with some of the most talented developers I've ever had the opportunity to work with.

Like many good intentioned projects, this effort is only as good as our ability to follow through on the promise and time will tell if we accomplish that. Please check back to see if we do.