Improving the dotProject User Interface – Part I of N

The single biggest UI complaint I hear about with dotProject is how difficult it is to create/edit whole groups of tasks at once. People are used to the Excel or Microsoft Project models where you can simply click on the task name, the date, whatever and immediately edit it, drag and drop it, or a variety of other things.

This must change and now we need to figure out how to do it. As a single member of the dotProject team, I cannot make overarching architectural decisions by myself, but I can propose solutions to improve things in general.

Just to make it clear right now, here are my standards for judging an option:

  • Does it help improve the front end in terms of organization, speed, or user experience?
  • Does it simplify the backend in terms of organization, speed or system maintenance?
  • Does it add additional complexity and/or the number of required skills for system maintenance and expansion?
  • Does it add value by providing better information in a timely manner to those who need it?

How do we do this? I think there are a few major routes we could go…

First, we could go the Ruby on Rails route. Lots of people are talking about it. Other than watching the movie demo, I have not ventured into it at all. I've already had some interesting discussions within our team about what to do with Ruby in dotProject. Could it improve the speed and maintenance of the system? Would it require a re-write of various portions of the backend?

Next, we could go the Web 2.0 route. While it's obvious that Web 2.0 is a great buzzword, some of the concepts such as RSS, Wiki's, Blogging, etc are starting to break into the mainstream. Could dotProject support a series of modules such as Wiki integration, information sharing and synchronization, etc to spread more information around the team faster?

Finally, there's AJAX. I believe that just about any successful web application at this point must have some AJAX magic thrown in. Too many people have seen how fast and smooth a web interface can be with it, so there's no option to leave it out. In addition, there are times when the end user isn't going to care about the level of detail that can be offered, they might only want to see the highest levels. We can take advantage of this and simply not retrieve the data until the user requests it.

I want to come up with a proposal and plan to present to the rest of the team. I'm not completely convinced on which route – or merger of routes – should be presented. If we have any chance of leading dotProject into world domination, we need to make the barriers to entry minimal, the annoyances non-existant, and the functionality above and beyond the competition.