Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

I have some SDI windows forms application. This application has main form, a huge of module forms. At the same time I can view one module form and many it's sub modal forms. So, every module form is responsible for some functionality. Users are noticed that they switch between some module forms many times per day. I have to collect this information and extract a common user's behavior. Are there any methods, tricks to get this information instead of manual investigation (shadowing)?

I can write any code to implement this.

ADDED:

I have decided to add some proxies to start logging their actions:

  • list view: select item
  • grid view: select item, other actions (filter, sort, edit)
  • button: action (add, edit, reorder, import, export, reset, save, undo, exit...)
  • look up text box: input text (with search button click)

I have decided to collect these data: user, location, action source, action base type, on date, action data

User1 | form1 | button1 | button action | 10/28/2010 10:00 | Edit

User1 | form1 | list1 | list view select action | 10/28/2010 10:03 | Items

User1 | form2 | grid1 | grid view select action | 10/28/2010 10:03 | 100654

Have I forgotten something?

share|improve this question
    
You've mentioned "module form" and "modal form" - is this intentional? (re: not a native English speaker) –  Rahul Sep 28 '10 at 6:25
    
@Rahul modal form (show modal) is a programming term. modal form is a form that should be closed before user can iterate with other one. module forms is a logical (functional) separation of forms (I guess :)). –  igor Sep 28 '10 at 9:43
    
Thanks, I know the difference, was just checking if it was intentional :) –  Rahul Sep 28 '10 at 10:02
    
good question but the answers (and the wording of the question itself) aren't quite good yet –  Naoise Golden Dec 21 '11 at 12:41
add comment

3 Answers

up vote 1 down vote accepted

We're looking into implementing something similar in an app that we're developing, though for different purposes (we want to be able to "replay" the user's actions for testing and robustness purposes). In our situation, we are enhancing the undo/redo mechanism in the software to make it save scripts of the user's actions.

If you don't have an undo ability, they you will need some sort of journaling, but it seems to me that this becomes more of a programming question than a UI one, no?

share|improve this answer
    
No, I am looking for a conception. Using Command pattern is a good option. Of course, I can add some lightweight logger. But I don't know how to extract of user's action chains, how to process collected data. –  igor Sep 27 '10 at 16:27
    
Good point, I have updated my question. –  igor Sep 28 '10 at 14:13
add comment

I have a bad idea, but I'll share it anyway as it might trigger better ones :)

If you were implementing a website, I'd say you could use Google Analytics or other software that gives you insight about your user actions (for example ClickTale).

Since I understand it's a desktop application, perhaps you could emulate using such web services, by associating certain modules and forms with specific urls.

Naturally you have to think about performance, letting your users know about the logging, etc., but if you can make it work, you might get the tools such services provide very easily.

What do you think?

share|improve this answer
2  
It would be far from a bad thing if the app's architecture were definable in restful syntax :) –  Rahul Sep 28 '10 at 6:28
    
Application is working and it seams to be difficult to change its architecture. :). I have updated my question. –  igor Sep 28 '10 at 13:48
1  
As it's SDI (that is, Win32 app) you'd need to embed an IE control with a web page that has the Google Analytics tracking javascript code on it. That's quite a lot of work really. –  Julian RH Sep 28 '10 at 14:45
add comment

If there are certain UI widgets you are interested in, such as dialogs, forms, etc, could you not just add some logging to their various events? For example, if the user switches from one tab to another tab frequently, and you want to measure this, you could count the number of times the tabs are hidden or shown. Similarly you could track button clicks, keyboard shortcut use, etc.

share|improve this answer
    
Thanks, I have updated my question. –  igor Sep 28 '10 at 13:47
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.