locked
Как правильно собирать данные о работе пользователей? RRS feed

  • Вопрос

  • Для улучшения интерфейсов хотелось бы собирать и обобщать данные по взаимодействию пользователей с программой. Например, логи манипуляций и тапов пользователя в текущем контексте. С другой стороны, Microsoft очень серьезно заботиться о приватности пользователей.

    Собственно вопросы:

    - Какие данные нежелательно отправлять на сервер?

    - Как предупредить об этом пользователя и получить его разрешение?

    4 ноября 2012 г. 5:30

Ответы

  • Вопросы стоят не в том порядке. Сначала нужно получить согласие пользователя, а затем выполнять сбор.

    Итак в начале работы программы покажите пользователю сообщение с вопросом не желает ли он помочь программе, позволяя собрать и отправить некоторые данные. Обязательно дайте ссылку на описание того что будет собираться. Так же сообщите, что если пользователь согласится или откажется, то позже он сможет изменить свое решение, зайдя в настройки.

    Теперь о том что можно, а что не стоит собирать. Я не знаю что у вас за приложение, поэтому говорю в общем. Не стоит собирать названия файлов и их пути на дисках. Не нужно собирать посещаемые адреса в интернете. Не нужно собирать персональные данные.

    Для улучшения интерфейса стоит собирать время нахождения пользователя в отдельном окне и в приложении в целом, время возврата назад в предыдущее окно. Частоту обращения к поиску. Частоту прокрути интерфейса ну и т.д. Главная идея в том, что бы эти данные показали вам удобно ли пользователю в приложении и не путается ли он в нем и как быстро находит нужную информацию.

    Сбор можно собирать во всех обработчиках событий что есть в приложении. Засекание времени можно делать по глобальному таймеру. Подсчет количества вызовов, например поиска, так же можно вести в глобальной переменной.

    Общую концепцию я вам описал, а вот реализация уже на ваших плечах. Надо сказать это не простая задачка.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Помечено в качестве ответа Abolmasov Dmitry 19 ноября 2012 г. 9:40
    4 ноября 2012 г. 15:04
  • Мы обычно логируем обращения пользователя к базе и переход между окнами. А вот удобство конкретных форм, обычно проверяем методом "коридорного тестирования". В котором берется человек проходившей по коридору и его просят выполнить некую задачу в интерфейсе. Вы в это время сижите у него за спиной и смотрите, что он делает не так, как вы задумывали. Как правило это позволяет быстрее оптимизировать интерфейс, чем работа с логами приложения...

    • Помечено в качестве ответа Abolmasov Dmitry 19 ноября 2012 г. 9:40
    5 ноября 2012 г. 4:27
    Отвечающий

Все ответы

  • Вопросы стоят не в том порядке. Сначала нужно получить согласие пользователя, а затем выполнять сбор.

    Итак в начале работы программы покажите пользователю сообщение с вопросом не желает ли он помочь программе, позволяя собрать и отправить некоторые данные. Обязательно дайте ссылку на описание того что будет собираться. Так же сообщите, что если пользователь согласится или откажется, то позже он сможет изменить свое решение, зайдя в настройки.

    Теперь о том что можно, а что не стоит собирать. Я не знаю что у вас за приложение, поэтому говорю в общем. Не стоит собирать названия файлов и их пути на дисках. Не нужно собирать посещаемые адреса в интернете. Не нужно собирать персональные данные.

    Для улучшения интерфейса стоит собирать время нахождения пользователя в отдельном окне и в приложении в целом, время возврата назад в предыдущее окно. Частоту обращения к поиску. Частоту прокрути интерфейса ну и т.д. Главная идея в том, что бы эти данные показали вам удобно ли пользователю в приложении и не путается ли он в нем и как быстро находит нужную информацию.

    Сбор можно собирать во всех обработчиках событий что есть в приложении. Засекание времени можно делать по глобальному таймеру. Подсчет количества вызовов, например поиска, так же можно вести в глобальной переменной.

    Общую концепцию я вам описал, а вот реализация уже на ваших плечах. Надо сказать это не простая задачка.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Помечено в качестве ответа Abolmasov Dmitry 19 ноября 2012 г. 9:40
    4 ноября 2012 г. 15:04
  • Мы обычно логируем обращения пользователя к базе и переход между окнами. А вот удобство конкретных форм, обычно проверяем методом "коридорного тестирования". В котором берется человек проходившей по коридору и его просят выполнить некую задачу в интерфейсе. Вы в это время сижите у него за спиной и смотрите, что он делает не так, как вы задумывали. Как правило это позволяет быстрее оптимизировать интерфейс, чем работа с логами приложения...

    • Помечено в качестве ответа Abolmasov Dmitry 19 ноября 2012 г. 9:40
    5 ноября 2012 г. 4:27
    Отвечающий
  • Привет. Пожалуйста, не забывайте отмечать решение проблемы (кнопки "Пометить как ответ" под сообщением). Спасибо.

    Для связи [mail]

    19 ноября 2012 г. 9:40