Archive for March, 2009

Drupal 7 UI: Be Part of the Solution

Tuesday, March 31st, 2009

As I have mentioned before, the Drupal project takes a very conscientious approach to usability. Unlike many commercial and open source software projects, Drupal enlists the help of usability labs and is very receptive to negative feedback. That is not to say that Drupal has achieved usability nirvana. They struggle with it like everyone else – especially as they try to add functionality and flexibility into the system. It is just that they practice their usability work so out in the open.

There is an opportunity to see the Drupal usability process first-hand by participating in this call to action from usability consultants Mark Boulton and Leisa Reichelt. There are several ways to participate. For more details, visit http://www.d7ux.org

Doubt

Monday, March 30th, 2009

After collecting requirements, the second most difficult component of a CMS selection is taking all the information that was gathered during the evaluation phase and using it to make a decision. This is where people get crazy with spreadsheets and scoring in the hopes that math will somehow heroically make a complicated and confusing (and, lets face it, subjective) decision obvious and irrefutable. The process looks something like this… There are a bunch of selection criteria. People rate the products on each criterion. People weight the criteria. You do some multiplication and addition and out comes some very quantitative looking numbers. Nothing looks more convincing than a score where one option has more points than another. But, users don’t necessarily want to use a system just because it has the highest cumulative, weighted score. They want to use a system that helps them efficiently get their jobs done while introducing the fewest number of annoyances. if the measurement of accuracy is the overall satisfaction with the solution, this method is extremely faulty.

There are several reasons why the matrix scoring method fails to accurately select the right solution. First, the rating and weighting wind up being very subjective and arbitrary. Veterans of this approach know this to be true when the they remember the feeling of not knowing what to put down or wanting to change their score when they see another product or have more coffee. Second, the final score hides information that is important to the users. A typical example is where a user finds a very important (to him) feature totally unusable but that is overshadowed by excellent ratings in a bunch of less important features. Usually you can’t correct this with weightings – especially if there are lots of selection criteria. You can’t discuss trade-offs and compromises if you are just working with total scores. Lastly, criteria tend to be of unequal granularity. How can a broad criteria like “usability” be compared with something as specific as “SSL on the login page?”
Bogus Selection Matrix

I take a different approach to the decision making process. Instead of forcing the selection committee into making numerical ratings, I ask them to list their doubts with each solution. Examples of doubts are:

  • a concern that the feature would not support a specific task
  • unnecessary complexity or awkward behavior in doing a specific task
  • an unsatisfactory explanation by the supplier about how a feature worked
  • doubt about the vendor’s stability or ability to support the customer
  • a potential technical incompatibility with the legacy infrastructure

Each of these doubts are investigated as whether they are valid (that is, if it was a misunderstanding or oversight), if there is a suitable work-around, or if there is a reasonable compromise. Through some facilitated sessions, we work through comparing the relative weaknesses of the competing solutions and determining what is tolerable. Follow up demos and calls with the vendors are scheduled and executed. Ultimately, the solution with the fewest legitimate and significant concerns wins. Facilitating these sessions is not as easy as simply reporting matrix scores but I think that it is good that people put some real intellectual energy into making such an important and complex choice.

At first glance, this system seems designed for selecting the lesser of evils and to some extent that is true – there is no such thing as a perfect solution and there will always be compromises (I should note here that there is an option of selecting nothing if no solution is good enough) – but it is really no worse than a numerical system that decides a 5 out of 1000 score is better than 3 out of a 1000. The benefit of the doubt technique is that it keeps the focus on things that have real impact on users and forces users to think through the implications of specific aspects of the solution. This is better than having a user register their concern as low numerical score and then just moving on. A secondary benefit selection committee members learn about their needs and software features as they watch demos and their selection criteria becomes more sophisticated. This approach allows potentially important information to enter the decision making process at any time. Also, after the product is selected, the selection committee can all clearly verbalize the reason behind the decision. If there is a complaint about the implemented solution, a selection committee member can say that they identified it as a concern and then explain the plan to lessen the impact.

I will be discussing this technique as well as all the other components of my CMS selection methodology in my “How to Select a Web Content Management System” workshop at the upcoming Gilbane Conference in San Francisco (June 2-5, 2009). Register before April 28th and save $200 off. Sign up for the full conference package and get an iPhone Touch.

Book Review: Django 1.0 Template Development

Thursday, March 26th, 2009

I just finished reading Scott Newman’s book Django 1.0 Template Development. This is the second Django book that I have read (the first was The Definitive Guide to Django
) and I am very impressed by the number (and quality) of Django books that have been published. 21% of the respondents to a recent “This Week in Django” poll said that they learned Django from reading a book (65% learned from the online documentation). Considering that until recently there were no Django books, this is significant.

Django 1.0 Template Development lives up to its title by focusing on the template layer of the Django web application framework although it does go through some basics of setting up your project and some of the details of the Django request handling pipeline. There is very little coverage of models – just enough to give the sample project some data to work with.

There is good coverage of how templates are loaded and guidelines of how to develop views [1] with plenty of tips on leveraging Django’s many convenience features (like generic views) and organizing code for better manageability. There are examples for using and writing custom middleware, filters, and tags [2] with special attention paid to best practices in security. A whole chapter is devoted to working with Django’s pagination system. Explanations are well supported with the theory behind and examples that demonstrate the details of Django’s behavior.

The area that I was hoping for a little more depth was in optimizing performance. Django gives the developer a lot of options of how to design the application. For example, in addition to the typical template “include” syntax, Django also supports template inheritance (where a child template can extend and override blocks of a page from its parent). There is not much information on the performance implications of deep template hierarchies. The caching chapter gives a nice overview of Django’s different caching options and engines and general guidelines but perhaps the art of really tuning a site is the topic for another book.

I would highly recommend Django 1.0 Template Development for anyone who wants to efficiently build a clean and manageable template layer for a Django project. In particular, a developer who needs to make the display tier flexible and extensible (such as the book’s example of managing a separate site skin for mobile browsers). Although the preface recommends the reader have a working knowledge of Django and Python, I don’t think that is really necessary. There is just enough information to help the developer to understand the overall Django framework but the emphasis is definitely on displaying data.

Notes:

  • 1 in Django, the “view” is the code that gathers and preprocesses the data for the template to render
  • 2 These are important for a template developer because Django deliberately limits the amount of logic you can put into a template to force developers to keep templates clean and make code more reusable. Logic belongs in filters (that manipulate data) and tags (that do more complex logic), and middleware (where you inject additional functionality into the request/ response cycle).

J. Boye: Philadelphia 2009

Tuesday, March 24th, 2009

The conference schedule for J. Boye Philadelphia 2009 (May 5th-7th) is taking shape nicely. The J. Boye team has added several case studies to make it a true “user conference” just like the J. Boye conferences in Denmark that I have raved about in the past. Expert speakers include David Pogue, Lou Rosenfeld, Lisa Welchman, Martin White, and Tony Byrne. J. Boye takes great care to keep the tone of the conference un-salesy and encourage a candid exchange of information. To keep the conversation going after the sessions end each day, there are also three social events: the Conference Dinner (May 5th), the Conference Party (May 6th) and the Farewell Dinner (May 7th). If you are coming in from overseas you also might want to attend the “Jetlag Reception” on Monday May 4th.

Although the early bird special is no longer available, you can use the coupon code “sgphilly” to get 15% off the list price. If you work for a non-profit, you can probably get a better discount by contacting the J. Boye team directly. I hope to see you there!

How I Talked Myself Out of a Kindle

Monday, March 23rd, 2009

It takes me a really long time to buy a gadget. Over the course of months I deliberate whether I really need the device and, if I do, what options I should get. The current object of my rumination is the Amazon Kindle 2
and, right now, the pendulum is on the “not buy” side of the swing. Here are the arguments that are keeping it there.

  1. I like to share books with my friends and family. The exchange of books can be a nice social experience. You loan or borrow a book and you have at least one person you can discuss it with.
  2. I buy used books. Used books can be a great deal. I like to browse used book stores and tags sales to find interesting books at a reasonable prices.
  3. The paper book just may be the culmination of reading technology. More durable than a papyrus scroll, cheaper than liquid crystal, what could be better than paper?
  4. My personal library is a carbon sink. You see an overloaded book case, I see hundreds of pounds of carbon not released into the atmosphere. A Kindle would be powered by a coal plant on the other side of town.
  5. I would rather read than talk about my reading device. I have hardly ever seen anyone actually reading a Kindle. Most Kindle owners that I see are too busy getting interrupted by strangers who have an opinion about the future of eBooks. A shy person like myself appreciates the camouflaging qualities of a nice boring looking paper book.

There you have it; those are my reasons. They are working for me right now but, in case you are not convinced, you can click through this Amazon Associates link
and put a little money in my Kindle fund (because that I know that I will eventually cave).

Blogging: Alive or Dead?

Friday, March 13th, 2009

Paul Boutin’s Wired article “Twitter, Flickr, Facebook Make Blogs Look So 2004″ last year created a lively dialog about the future of blogging. The general gist of the article (in case you haven’t read it) is that mainstream media companies have adopted and started to dominate the blog format while independent bloggers have drifted into the even more casual and spontaneous domain of “status updates.”

Independent bloggers do tend to let their productivity ebb and flow and I am sure that many of the “citizen journalists” who were really flowing during the blogging peak are seriously ebbing right now. I agree with Boutin that blogging is no longer the primary way that people casually share ideas. Now, when I run across some interesting information I have three choices. I can blog it, I can bookmark it, or I can tweet it. My general rule of thumb is: when I have something to add, I blog it; when I just want to save it for later (perhaps with a little note), I bookmark it in Delicious (or star it in Google Reader); when I just want to tell my friends, I tweet it. All of my stuff goes into FriendFeed where occasionally people comment and add their own ideas. I imagine other bloggers’ productivity is similarly diluted across these other channels.

But Boutin’s trend is going even further. There was a great article in the New York Times that described how television journalists are getting addicted to Twitter. Robert Scoble has created his own format on FriendFeed where he starts an item with something like “Why Twitter is not for conversations. I will give you five reasons here:” and then goes on to list them in the comments. As he adds items, everyone else chimes in with their opinions. The result is a Crossfire-like discussion but without the interruptions (and, thankfully, without Tucker Carlson). In this case, he gave 5 reasons out of a total of 158 comments and another 143 people “liked” the post. In these cases the journalist moves from commentator to facilitator or catalyst. But, while this format is very dynamic and has lots of energy, it lacks the authority of a single person summarizing and interpreting the information.

To really develop an idea into a cohesive viewpoint, you may not need to write a 1,400 word exposé but you do need more than 140 characters (FriendFeed allows you more but most people don’t use more than 140). And for that type of communication the blog format is very well suited because you have the room to elaborate on your point and you still offer a place for others to make their own comments. Blogging is not going away. If anything, it is displacing the formal article as the preferred format for journalists who appreciate the more intimate relationship with their reading audience that comes with immediate publishing and user submitted comments. My feed reader relentlessly fills up with new content every day so I can’t complain about not having enough to read. If anything, I feel like the overall quality of the blogosphere is going up. Blogging isn’t dying, it is just maturing. And with maturity, comes sophistication (at least that is what I tell myself).

Talk about lock-in! How about a WordPress tattoo?

Thursday, March 12th, 2009

Lorelle VanFossen posted the first known permanent WordPress tattoo. I guess (tattoo recipient) Ed Morita didn’t read my post on CMS exit strategies. As with most CMS implementations, the feedback has been mixed. Comments on Lorelle’s blog range from “Woah! I think it’s a good tat! And it is a great location” to “Oh dear I hope that is fake cos that is the lamest tattoo ever!” However, unlike most CMS implementations, which are planned to be in place for less than 5 years, Ed’s tattoo should last a lifetime.

Drupalcon DC 2009 Sessions Online

Tuesday, March 10th, 2009

For those of you (like me) who missed Drupalcon in DC, videos from 90 sessions have been posted online. By all accounts this was an amazing conference and I am sorry to have missed it. At least, I will be able to catch some of the sessions online. In particular, I am interested in:

RFP Horror at the RNC

Tuesday, March 10th, 2009

tre_cms
How could the RNC not select a CMS called The Red Elephant?
(this image is copyrighted by Red Elephant ICT & Internet Services)

Gregor Rothfuss sent me a link to a report about a ridiculous CMS RFP issued by the RNC. As I have written before, the traditional RFP process is totally broken. Here, the RFP asks for innovation around sketchy buzzwords that are meant to be requirements yet still asks for a fixed bid. I wonder how the RNC could avoid selecting a CMS called The Red Elephant?

In my Web Content Management Selection workshop at last year’s Gilbane Conference, I told a story about a fictitious botched selection process for an imaginary website. This may be one of those cases where reality is better than fiction so I am thinking that the RNC RFP should be my anti-example when I teach the selection workshop this summer.

Communicating Across the Techno Gap

Monday, March 9th, 2009

You have probably heard people talking about “dotted lines” in organizational charts. That is when someone has partial accountability to someone other than his direct manager. An org chart notation that I would really like to see is a “flashing red” line. I would use it to show when someone reports to a manager who has no clue what he does.

Any reader of Dilbert knows that this happens all over organizations but the case that I am the most keenly aware of is when a technologist reports to a non-technologist (or, perhaps worse, a former technologist). As a consultant, this is the area where I am regularly deployed. I am often hired by the non-technical manager to help him validate and/or understand what his technical staff are doing. I am also often hired by the technical staff to validate and explain their strategy. Consultants get put into this position because this is an area where companies struggle on their own. They need an outsider to facilitate and verify because communication and trust is so compromised. While I do love this work and would be happy to perform this role at your organization, here is some free advice to get you started so you can make some progress on your own.

Communicating to a non-technologist

Your manager doesn’t really understand what you do despite your best attempts to explain it. You suspect that he doesn’t care. Maybe he doesn’t want to understand. Maybe he can’t help that his brain just locks up when you say words like “refactor.” You don’t feel appreciated. You are about to stop trying.

When talking to your non-technical manager, don’t try to dumb down what you say but for every detail mention, make a very clear connection to something that matters to the business. That usually means cost (short term and long term), quality, and impact. By impact, I mean things that will benefit the business: time savings, competitive advantage, etc. Provide inputs for any financial analysis he wants to do.

Don’t get bogged down in numbers. Instead, draw comparisons because the units are probably meaningless. At the end of the day, the non-technical manager wants to be reassured that progress is being made and nobody is making “unconventional” technology decisions. An example of the former, is saying that you are “doubling storage” rather than “adding a 500GB RAID 5 storage array.” For the latter, say “companies like EBay use MySQL” rather than “MySQL is a fully ACID compliant database.”

More important than anything you say is how you listen. Listen to his concerns. Figure out what kind of proof will alleviate these concerns and provide it. Prototyping is a great way to show a technology in terms that a non-technical person can relate to – much better than UML.

Communicating to a technologist

Admit it. You are a little afraid of your tech guy. He has strange working habits and speaks in a language that you only barely understand. Even though you manage him, you have very little visibility over what he does. Unlike with other people who report to you, your advice to him is pretty much worthless because you both know that you have no idea what you are talking about. Whenever you ask a question, the answer just confuses you more. You just stop asking. The scariest thing you can think of is that your tech person leaves and, after drifting helplessly for weeks, you learn that your entire infrastructure is in chaos and about to collapse. What is going on in this technical empire he has built under your nose?

If you don’t know anything about technology, you should start learning. Unless you are retiring in the next couple of months, you can only expect technology to become a more important part of the business that you are supposed to run. Have your technology guy help educate you. Ask him about the technical details underneath what you see as a user. But don’t just listen to your internal technology people, listen to what is happening outside of your organization. Talk to your peers at other companies and learn about what they are doing. Read stuff online. Hire a good consultant. Share what you are learning with your technical staff in a non-confrontational way. Don’t go in with managerial bravado. You are the student – be humble. It is a warning sign if they get defensive when you show a genuine interest.

The best approach for making technology decisions is to describe what you need in very clear terms (your technical person will call that requirements gathering). I like usage scenarios as a way to communicate these things. Ask your technical staff to put together their best solution and schedule time to review its viability and sustainability. Have an open dialog about the implications. Meet regularly with the team – not just at the end to “sign-off.”

More important than anything you say is how you listen. Treat the interaction not as manager but as a partner and teammate. You both have the same goals. When the technical discussion gets out of your depth, don’t shut down! Instead, connect it to something that you do understand and that matters to your responsibilities. Share the insight that you have about the company’s needs and what your boss will ask for.