First off, this isn't against Seam, or any implemented feature in seam, just some
general thoughts on the usefulness of conversations in real world environments. In
particular, I'm thinking of some of the aspects that Seam gives us such as the
non-modality of conversations (open in new window/tab) versus the constrained application
which forces you to work modally, and all in the same window by using buttons instead of
links.
Many of these issues address concepts that we as developers should, or should not allow in
applications. The users can only screw up if we give them the means to, well, ok, I'm
sure they can, but you know what I mean. Usually, when I'm developing an app, I'm
thinking about how a user will use something, and how many helpdesk calls it's going
to end up generating.
1) Multiple conversations - since we are going to end up with users who click to edit the
same thing a couple times, we are going to end up with multiple conversations of the same
thing. This means storing the same data a couple of times over. This can be addressed
using business conversation Ids, which has its own problems as mentioned later. Also, when
they are editing the same widget twice in separate windows in the middle of a bunch of
other windows, it is not hard to imagine they will edit the widget, save it, come across
the other window, possibly make further edits, and save it. Versioning will prevent the
second save as it should, but it doesn't strike me as a great user experience when the
user can get bogged down in so many windows, they don't know which they have already
saved, and which are redundant.
2) Workspaces - The idea of workspaces is nice, except that again, it is flawed by how the
user will end up using them. The notion of a workspace implies that you can start one
thing, then go off and do another, and come back to what you started. As conversations
have a finite lifespan, they will see their workspaces disappear over time as they time
out. Users often get fussy if we don't ask them to confirm that they want to cancel
their changes if they actually click the cancel button. They'll have a fit if they
start silently losing changes in the background as conversations time-out.
3) Conversation Business Ids - Conversation Business Ids are great in the way that they
reduce the number of conversations by forcing unique conversations based on the business
id. You can't edit an object more than once, and if you try, the old conversation will
resume. Again, this is flawed by the chance that the user will end up with two windows
editing the same conversation. Additionally, conversation Ids can get sticky when creating
a new object, since it doesn't have an Id at the creation time unless you save it. By
saving the widget, to get an Id, you put the widget in the pool of widgets, so you can go
to the widget list page, and see your new widget that you havent' yet saved.
Furthermore, you need to put in additional code to handle the removal of new widgets if
changes are cancelled, or the conversation times out without the widget being saved.
4) Benefits of modality - I know there are plenty of reasons to object to modality, but at
the same time, modality keeps order. We are considering introducing more modality, or at
least not letting the user go off and do anything else in the application from every other
single point in the application. Modality also gives you a cleaner conversation
demarcation since if you must leave one page to get to the next, then you know whether the
previous page must keep its conversation or not. Alternatively, if the user can open the
next page in a new window, the previous page could still be active in the old window, and
therefore the conversation must carry on.
I think conversations still have their place, but I'm starting to see more and more
that it is about aiding the programmer with managing object lifetimes and function
specific features such as wizards, rather than giving the user free reign to edit as many
instances of objects at the same time as they want in a controlled manner. At the end of
the day, Seam's conversation management can keep up with it all, but I doubt the users
can.
What say ye?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4082794#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...