Sunday, August 5, 2007

Lighthouse Pro and Web 0.20

One of the concepts associated with Web 2.0 is using AJAX to refresh data on a page, instead of refreshing the page. JavaScript is used to sort and filter the data and and load any changes. Today, I'd like to bring an example of how horribly wrong this can turn out when a developer has no understanding of what he's doing.

The company I work for uses Lighthouse Pro by Raymond Camden. Lighthouse Pro is an online bug tracking application written in ColdFusion. Before the move to Web 0.20, Lighthouse Pro suffered bad UI design and usability problems. One of the worst problems, and one which is still present, was that all notes got added to one very narrow textbox. The ideal way would be to use a separate table where each note would be a separate row with its own status, owner, attachment, etc. Why the notes were not implemented this way I have no idea, however, the complete lack of understanding of UI design is unacceptable. The notes textbox seems to be at default width and height making it unreadable. There are many other small annoyances. Two other problems I had with it is the 30 minute session timeout and filter settings being stored as session, instead of client, variables.

Recently, a new version of Lighthouse Pro was released. The planned move was to web 2.0, the result, web 0.20. As I mentioned earlier, filter settings were stored originally in session, now they're not being stored at all. Each time you open a bug and change status, you're brought back to the task list with all filters removed. I usually set 2 filters, one for status and one for owner. Now, I need to do that every freaking time I submit a change. Not only that, the current version of Lighthouse Pro shows bugs in reverse chronological order, so each time you loose your place and have to click through to wherever you were working. Besides the lack of persistent filters and page, the list is not actually updated live and requires a refresh to see any new bugs. The latest version not only doesn't improve the usability, but whatever usability there was is now gone completely.

If you're a developer and want to implement AJAX and web 2.0, remember, you're doing this not for bragging rights, but to improve usability of your product and to make the user's job easier. If you're adding AJAX to make your data sortable without refresh, make sure you're also using it to at least fetch data. If there's 5 filters and 10 sorts, make sure the user doesn't need to set them every time he does something. Stop designing for 800x600 resolution, either make everything scalable or at least use 1024x768. If you can't implement a scalable interface and you must have backward compatibility for 800x600, use settings and separate stylesheets for each resolution. I'm sure the user would prefer to set the resolution, even if it has to be done at each login, than having to read 2 pages of text inside a box the size of their cellphone.

No comments:

Post a Comment