Archive for the ‘donjon’ Category

Poor man’s usability test

July 3rd, 2008

Going public with donjon was a great decision. We got several levels of feedback, and not all of them are conscious or direct. Let me go over some of these:


First of all, we use MonoRail Exception Chaining extension and get e-mail with all exception details, plus the page, form, query string, session and flash state, so it’s relatively easy figuring out how to reproduce the situation that caused the exception. This approach wont send us only unhandled exceptions, instead we use RegisterExceptionAndNotifyExtensions to make sure we get it. The following is a typical donjon’s action in a controller

[return: JSONReturnBinder(Properties = "Id,UserName,FullName,Email")]
public User[] AddMembers(string key, string[] users)
    catch(Exception e)
        Logger.Error("AddMembers failed", e);

RegisterExceptionAndNotifyExtensions will make sure the chain is going to be executed. The Logger is our ultimate place to detect problems, finally we throw so the ajax call get a status 500. Some places I dont even throw, just set StatusCode to 500 and RenderText(a nice error message)

I also find a best practice to always start writing and testing an action/page with the error handler. So my actions usually starts as this:

public void Action()
        throw new Exception("something bad");
    catch(Exception e)

I find a good practice to assume that at some point something might go wrong, and the user is properly notified. It’s just too much to assume that the action will always be successful.

Settings and defaults

Each user on donjon has a preferences setting. Inspecting the database I found that almost no one ever set a preference. Disturbing to me, as I think the Issue list as it is is just too bloated with information, so the first thing I do is configuring it to show less columns. Nobody did that, possibly because nobody knew how to do it.

Ok, lesson learned and code fixed. donjon will set up an user with an initial preference set to less columns.

Right side Navigation

Aaron complained about this one. It was inspired on some tool I’ve used, so I thought breaking the convention would be a good thing. Bad news to me: “don’t break user expectation” and “don’t try to create new conventions unless they are revolutionary” are some huge bullet points in the book “Prioritizing Web Usability”.

Just to unarguably prove that my decision was dumb, I found the article Navigation: Left is Best

Another lesson learned.


The issue list page was designed and redesigned at least 10 times. All of them functional. The present version is the one that I’m satisfied, but I’m sure there are room for improvements.

I gotta tell you that at first it’s not easy to not to think as a programmer and instead wear the user hat when designing a page. Your programmer’s mind want to make things easier for you (code-wise), your user’s mind wants to make things much more complex. Yeah, sometimes to make the experience simpler you have to write much more code. My guess is that it’s an eternal struggle.

So expect some big improvements for beta 2 :-)

donjon at

June 26th, 2008

Yeah, donjon beta 1 is running at, you can and should give it a try. Fell free to explore, change things, we will restore the backup to the original state in a week.

Now, finally, what is it?

Our first goal is to make an agile project management web app. Why? We are not happy with the apps we have been using. They clearly are clueless regarding usability, and the pricing is unreasonable – not to mention the drug dealer selling model. The one that has a very decent UI is just not flexible. Also, I’m not a total fan of SaaS model, so I’d rather host my and my clients projects and important data.

While designing the core I decided to go towards a more extensible, pluggable model. That makes things way more complicated, but pays off in the end. The core allows you to plug modules and extensions. Just like in Windsor, they can hook and extend functionality. Currently we have three modules:

- Core: manages Components and Releases
- Issue Tracking: manages issues, depends on Core
- Discussion: allows you to have online discussions with your peers and clients.


We have just started a Scrum module, which is planned for version 1.1, though.

Nothing stop you from creating your own module that makes sense for you scenario/company.


Yep, fields, workflows, everything!

What is cool?

There are two features I like the most:

Searching, which was clearly inspired on Mac OS’ Spotlight, was proved really handy.


And the list view. There, you can click on any column to start narrowing the results, save the view, edit directly on the table and fire the workflow (if you are a project member), a real time saver!


Categories: donjon | Top Of Page | 21 Comments » |

It’s coming!

June 23rd, 2008

‘Nuff said :-)

donjon first public demo – sort of

April 10th, 2008

Hmm, thinking about it, I guess the post title might be a bit misleading :-)

Today I showed donjon during the lunch to two IT-world friends. Seems that they really really liked it. My biggest concern was that the all usability points wouldn’t be well received, or that the interface wouldn’t communicate the intentions very well.

My test was showing them the app, making them look at a specific piece of the page and asking ‘what do you think this is for’. They were able to immediately tell what it was. And if you’re wondering, no, I wasn’t using some labels or text to identify the functionality.

Wow, I’m happy – and I’m not known for being happy about the things I create. Certainly tells me I’m in right path.